semvec/pypi-packages huggingface dataset:
DataChanger 0.1.4
A class for dot notation access to dictionaries
Requires Python: >=3.6

# DataChanger

DataChanger is a Python package that provides a class `DotDict` for dot notation access to dictionaries, lists, tuples, sets, and even JSON strings.

## Installation

You can install DataChanger via pip:

# Description
DataChanger is a Python package that provides a class DotDict, 
    which allows for dot notation access to nested dictionaries and json data with data
    types like str, int, lists, tuples, and sets. It is especially useful for working 
    with JSON data and standard Python dictionaries in a more intuitive way.

    Features:
    - Written in Cython which gives this code 10X speed than python.
    - Dot notation access for dictionaries and json.
    - Supports deeply nested data structures, such as JSON and Python dictionaries.
    - Converts JSON strings directly to DotDict, without the need to first convert to a dictionary.
    - Allows for seamless conversion back to standard Python dictionaries.

    Benefits:
    - Simplifies working with deeply nested data by allowing dot notation (e.g., `data.key1.key2`).
    - Eliminates the need for repetitive key lookups or dealing with nested dictionary keys manually.
    - Faster and more efficient handling of JSON data by eliminating the intermediate step of converting JSON to dict before conversion to DotDict.

    Usage:
    1. Convert a standard dictionary or JSON string to a DotDict:
       - Using a dictionary:
         ```python
         from dictator.dot_dict import DotDict
         my_dict = {'key1': {'key2': 'value'}}
         dot_dict = DotDict(my_dict)
         print(dot_dict.key1.key2)  # Output: value
         ```
       - Using a JSON string:
         ```python
         json_str = '{"key1": {"key2": "value"}}'
         dot_dict = DotDict(json_str)
         print(dot_dict.key1.key2)  # Output: value
         ```

    2. Convert back to a dictionary:
       ```python
       dict_rep = dot_dict.to_dict()
       print(dict_rep)  # Output: {'key1': {'key2': 'value'}}
       ```
      
    3. Stop raising error if key is not present in dict:
      ```
      dot_dict = DotDict(my_dict, raise_error=False)
      ```
    
    4. Convert nested iterables to list:
      ```
      dot_dict = DotDict(my_dict, convert_iterables=False)
      ```

    This package makes working with nested data more intuitive and readable, 
    especially when handling complex JSON objects or deeply nested dictionaries.
doiget-tdm 0.1.0
A command-line application and Python library for obtaining the metadata and full-text of published journal articles for text data mining (TDM) purposes.
Requires Python: <3.13,>=3.11

# doiget-tdm

`doiget-tdm` is a command-line application and Python library for obtaining the metadata and full-text of published journal articles.

> [!WARNING]
> This package is primarily intended for use in text data mining projects where the user has subscriptions to full-text content and has organised data exchange agreements.
> Acquisition for most publishers will not work without configuration - see [Available publishers](https://unimelbmdap.github.io/doiget-tdm/publishers/avail_publishers.html).

## Features

* Acquire full-text of published articles, with built-in support for multiple publishers and their acquisition methods (e.g., network or local files).
* Currently supported publishers (given appropriate access and configuration):
    * American Medical Association (AMA)
    * American Psychological Association (APA)
    * Elsevier
    * Frontiers
    * IOP
    * PeerJ
    * PLoS
    * PNAS
    * Royal Society
    * Sage
    * Springer-Nature
    * Taylor & Francis
    * Wiley
* Customise acquisition and add additional publishers.
* Retrieve article metadata from [Crossref](https://crossref.org), optionally using a Lightning key:value (DOI:metadata) database formed from a Crossref public data export via [`crossref-lmdb`](https://github.com/unimelbmdap/crossref-lmdb).


## Installation

The package can be installed using `pip`:

```bash
pip install doiget-tdm
```

## Quickstart

Show the default configuration settings:

```bash
doiget-tdm show-config
```

Download the full-text (XML) of the journal article with DOI [`10.1371/journal.pbio.1002611`](https://doi.org/10.1371/journal.pbio.1002611) to the default directory:

```bash
doiget-tdm acquire '10.1371/journal.pbio.1002611'
```

Next, you can read through the [Workflow](https://unimelbmdap.github.io/doiget-tdm/workflow.html) document to understand how to use the package in a text data mining project and the [Concepts](https://unimelbmdap.github.io/doiget-tdm/concepts.html) document to learn more about the approach taken by `doiget-tdm`.

## Documentation

See the [documentation](https://unimelbmdap.github.io/doiget-tdm/) for detailed information about how to use `doiget-tdm`.
apertium2ud 0.0.8
Converting universal tags to Apertium tags.
Requires Python: >=3.7
Keywords: natural language processing, apertium, morphology

# apertium2ud

Obtaining the mapping between the two tagsets based 
on the [information from Apertium Wiki](https://wiki.apertium.org/w/index.php?title=List_of_symbols).

Loosely based on [this code](https://github.com/mr-martian/apertium-recursive-learning/blob/master/tags.py), 
hence the GPLv3 license.

To install, run

```bash
python -m pip install apertium2ud
```
The latest uploaded version is 0.0.8.

NB! The latest version from PyPI (yes, you can install the tool via pip) is equipped with the [apertium-kir](https://github.com/apertium/apertium-kir/blob/main/apertium-kir.kir.udx) `.udx` file rules.

To build the machine-readable mapping, run

```bash
python apertium_wiki_parser.py
```
## Apertium to Universal tags

```
>>> from apertium2ud.convert import a2ud
>>> tags = ["n", "pl", "acc"]
>>> a2ud(tags)
(['NOUN'], ['Number=Plur', 'Case=Acc'])
>>> tags_sophisticated = ["v", "tv", "ger", "nom", "cop", "aor", "p3", "pl"]
>>> a2ud(tags_sophisticated)
(['VERB', 'AUX'], ['Subcat=Tran', 'VerbForm=Vnoun', 'Case=Nom', 'Tense=Past', 'Person=3', 'Number=Plur'])
```

## Universal tags to Apertium

So far the conversion is far from perfect
```
Кыз NOUN {'Number[psor]=Sing', 'Number=Sing', 'Case=Nom', 'Person[psor]=3', 'Person=3'} ->
<px3sg><n><subj?nom?><sg><p3><px3sp> 

досуна NOUN {'Number[psor]=Sing', 'Number=Sing', 'Person[psor]=3', 'Case=Dat', 'Person=3'} ->
<px3sg><n><sg><dat><p3><px3sp> 

кат NOUN {'Case=Nom', 'Person=3', 'Number=Sing'} ->
<n><subj?nom?><sg><p3> 

жазган VERB {'Aspect=Perf', 'Polarity=Pos', 'Number=Sing', 'Tense=Past', 'Person=3', 'Evident=Fh'} ->
<past3p><vblex?v?vbmod?><sg><aff><aor?past?pret?><perf><p3> 

. PUNCT set() ->
<sent?apos?percent?clb?punct?> 
```

## TODO

* Should sections `chunks` and [XML tags](https://wiki.apertium.org/w/index.php?title=List_of_symbols#XML_tags) be added? [No](https://github.com/apertium/apertium/issues/185).
* Tests: Apertium -> UD -> Apertium, UD -> Apertium -> UD (sometimes losses are inevitable)
* Add the possibility to add the rules based on a `.udx` file, which usually describes custom tags

## How to cite

Greatly appreciated, if you use this work.

```
@misc{apertium2ud2023alekseev,
  title     = {{alexeyev/apertium2ud: mapping tagsets}},
  year      = {2023},
  url       = {https://github.com/alexeyev/apertium2ud}
}
```
my-library-num-135790 0.1.0
Библиотека направленная на работу с текстом и математическими вычислениями
Requires Python: >=3.12

яю#\x00 \x0081;8>B5:0 \x00"\x00m\x00y\x00_\x00l\x00i\x00b\x00r\x00a\x00r\x00y\x00_\x00n\x00u\x00m\x00_\x001\x003\x005\x007\x009\x000\x00h\x00o\x00n\x00"\x00
\x00
\x00
\x00
\x00>O \x00181;8>B5:0 \x00"\x00m\x00y\x00_\x00l\x00i\x00b\x00r\x00a\x00r\x00y\x00_\x00n\x00u\x00m\x00_\x001\x003\x005\x007\x009\x000\x00"\x00 \x00?@54>AB02;O5B \x00425 \x00<0B5<0B8G5A:85 \x00DC=:F88 \x008 \x00425 \x00DC=:F88 \x004;O \x00@01>BK \x00A \x00B5:AB><.\x00
\x00
\x00!?8A>: \x00<0B5<0B8G5A:8E \x00DC=:F89:\x00
\x00
\x00
\x00
\x00d\x00e\x00f\x00 \x00a\x00d\x00d\x00(\x00a\x00,\x00 \x00b\x00)\x00:\x00 \x00
\x00
\x00 \x00 \x00 \x00 \x00r\x00e\x00t\x00u\x00r\x00n\x00 \x00a\x00 \x00+\x00 \x00b\x00 \x00#\x00 \x00$C=:F8O \x00a\x00d\x00d\x00 \x00?@8=8<05B \x002\x00 \x00G8A;0 \x008 \x002>72@0I05B \x008E \x00AC<<C.\x00
\x00
\x00
\x00
\x00d\x00e\x00f\x00 \x00s\x00u\x00b\x00t\x00r\x00a\x00c\x00t\x00(\x00a\x00,\x00 \x00b\x00)\x00:\x00
\x00
\x00 \x00 \x00 \x00 \x00r\x00e\x00t\x00u\x00r\x00n\x00 \x00a\x00 \x00-\x00 \x00b\x00 \x00#\x00 \x00$C=:F8O \x00s\x00u\x00b\x00t\x00r\x00a\x00c\x00t\x00 \x00?@8=8<05B \x002\x00 \x00G8A;0 \x008 \x002>72@0I05B \x008E \x00@07=>ABL.\x00
\x00
\x00
\x00
\x00!?8A>: \x00DC=:F89 \x004;O \x00@01>BK \x00A \x00B5:AB><:\x00
\x00
\x00
\x00
\x00d\x00e\x00f\x00 \x00c\x00o\x00u\x00n\x00t\x00_\x00w\x00o\x00r\x00d\x00s\x00(\x00t\x00e\x00x\x00t\x00)\x00:\x00
\x00
\x00 \x00 \x00 \x00 \x00r\x00e\x00t\x00u\x00r\x00n\x00 \x00l\x00e\x00n\x00(\x00t\x00e\x00x\x00t\x00.\x00s\x00p\x00l\x00i\x00t\x00(\x00)\x00)\x00 \x00#\x00 \x00$C=:F8O \x00c\x00o\x00u\x00n\x00t\x00_\x00w\x00o\x00r\x00d\x00s\x00 \x00?@8=8<05B \x00B5:AB>2>5 \x00A>>1I5=85 \x008 \x002>72@0I05B \x00:>;8G5AB2> \x00=0?8A0==KE \x00A;>2.\x00
\x00
\x00
\x00
\x00d\x00e\x00f\x00 \x00r\x00e\x00v\x00e\x00r\x00s\x00e\x00_\x00s\x00t\x00r\x00i\x00n\x00g\x00(\x00t\x00e\x00x\x00t\x00)\x00:\x00 \x00
\x00
\x00 \x00 \x00 \x00 \x00r\x00e\x00t\x00u\x00r\x00n\x00 \x00t\x00e\x00x\x00t\x00[\x00:\x00:\x00-\x001\x00]\x00 \x00#\x00 \x00$C=:F8O \x00r\x00e\x00v\x00e\x00r\x00s\x00e\x00_\x00s\x00t\x00r\x00i\x00n\x00g\x00 \x00?@8=8<05B \x00B5:AB>2>5 \x00A>>1I5=85 \x008 \x002>72@0I05B \x00>1@0B=>5 \x00A>>1I5=85 \x00(\x00r\x00e\x00v\x00e\x00r\x00s\x00e\x00)\x00.\x00
\x00
\x00
\x00
\x00#\x00#\x00 \x00#AB0=>2:0
\x00
\x00;O \x00CAB0=>2:8 \x00181;8>B5:8 \x00?@>?8A0BL \x002 \x00:>=A>;L:\x00
\x00
\x00`\x00`\x00`\x00b\x00a\x00s\x00h\x00
\x00
\x00p\x00i\x00p\x00 \x00i\x00n\x00s\x00t\x00a\x00l\x00l\x00 \x00m\x00y\x00_\x00l\x00i\x00b\x00r\x00a\x00r\x00y\x00_\x00n\x00u\x00m\x00_\x001\x003\x005\x007\x009\x000\x00 \x00
\x00
\x00
vpype-ttf 0.0.7
vpype ttf plugin

# vpype-ttf
Vpype plugin for using True Type fonts for text.

For `vpype`, see: https://github.com/abey79/vpype

## ftext

A shortening of "font text", this command accepts the required arguments of a path to a TrueType, and a string of text to render, and an optional argument of the text size, and adds the rendered text lines to the document in the pipeline.

## Installation
* Install repository:
* `pip install vpype-ttf`

## Usage
Have font file specified, eg:
* `vpype ftext /usr/share/fonts/truetype/open-sans/OpenSans-Bold.ttf "vpype-ttf" show`

<img width="1031" alt="the text 'vpype-ttf' rendered with vpype show" src="img/vpype-ttf.png">

## Options
vpype-ttf currently supports font scaling with the -s or --size option.
* `vpype ftext -s 10cm /usr/share/fonts/truetype/open-sans/OpenSans-Bold.ttf "vpype!" show`

## Contributing 
Thanks to [Tatarize](https://github.com/tatarize) for creating this plugin in the first place.
If you would like to contribute and expand vpype-ttf, bug reports, feature requests, and issues are welcome.
napari-update-checker 0.1.0
Updates checker plugin for napari.
Requires Python: >=3.8

# napari-update-checker

[![License](https://img.shields.io/pypi/l/napari-update-checker.svg?color=green)](https://github.com/napari/update-checker/raw/main/LICENSE)
[![PyPI](https://img.shields.io/pypi/v/napari-update-checker.svg?color=green)](https://pypi.org/project/napari-update-checker)
[![Python Version](https://img.shields.io/pypi/pyversions/napari-update-checker.svg?color=green)](https://python.org)
[![tests](https://github.com/napari/update-checker/actions/workflows/test_and_deploy.yml/badge.svg)](https://github.com/napari/update-checker/actions/workflows/test_and_deploy.yml)
[![codecov](https://codecov.io/gh/napari/update-checker/branch/main/graph/badge.svg)](https://codecov.io/gh/napari/update-checker)

[napari] update checker to query for new napari versions.

You can read the documentation at [napari.org/update-checker](https://napari.org/update-checker).

## Overview

The `napari-update-checker` is a plugin that checks for newer versions of napari available either on [conda-forge], or on [PyPI], by querying the repository release tags.

![Screenshot of the napari-update-checker interface, showcasing the plugin](https://raw.githubusercontent.com/napari/update-checker/refs/heads/main/images/description.png)

`napari-update-checker` knows how to detect if napari was installed using `conda` or `pip` or if it was installed using the application bundle to provide the correct documentation on how to update napari to the latest version.

## Widget

![Screenshot of the napari-update-checker widget](https://raw.githubusercontent.com/napari/update-checker/refs/heads/main/images/widget.png)

## License

Distributed under the terms of the [BSD-3] license, "napari-update-checker" is free and open source
software.

## Issues

If you encounter any problems, please [file an issue] along with a detailed description.

[file an issue]: https://github.com/napari/update-checker/issues
[conda-forge]: https://anaconda.org/conda-forge/napari
[PyPI]: https://pypi.org/napari
[BSD-3]: http://opensource.org/licenses/BSD-3-Clause
[napari]: https://github.com/napari/napari
geometryhelper 0.1.2
Библиотека для работы с геометрическими фигурами и кв уравнением
Requires Python: >=3.6

# geometryhelper
 
Простая библиотека Python для работы с геометрическими фигурами и с квадратичными уравнениями.

 solve_quadratic(a: float, b: float, c: float) -> Union[Tuple[float, float], Tuple[float], None]:    
 Эта функция решает квадратное уравнение вида ax^2 + bx + c = 0.

circle_area(radius: float) -> float:  
     Эта функция вычисляет площадь круга.

rectangle_area(length: float, width: float) -> float:  
     Эта функция вычисляет площадь прямоугольника.
## Установка
```bash
pip install geometryhelper
solana-trading-bot 0.1.0
The aim of this project is to provide a powerful tool for trading on Web3's most renowned exchanges
Requires Python: >=3.8

# Solana On-Chain Trading Bot (Very Immature Now)

This project is owned by [@handsomevictor](https://github.com/handsomevictor), a Chinese boy living in Paris.

## Introduction

The aim of this project is to provide a powerful tool for trading on Web3's most renowned exchanges, such as
[JUP](https://jup.ag/). JUP is primarily used for swapping tokens, and this tool focuses on utilizing it for trading
rather than traditional limit orders.

**Disclaimer**: This project, owned solely by [@handsomevictor](https://github.com/handsomevictor), offers open-source
strategies without warranty. The author holds no responsibility for any losses incurred while using this project.

## Usage

Before using the project, ensure you have created a wallet, transferred some SOL or other tokens to it, and placed the
public and private keys in the environment variables. The project utilizes these keys to sign transactions.

```python
USER_PUBLIC_KEY = os.environ.get("TEST_USER_PUBLIC_KEY")
USER_PRIVATE_KEY = os.environ.get("TEST_SOLANA_USER_PRIVATE_KEY")
```

## How to Run

Execute [transaction_executor.py](trading_bot%2Ftransaction_executor.py) in `./trading_bot`.

## Example Calculation

Assume your Solana wallet holds 1 SOL and 1 USDC, and you want to swap 0.1 SOL for USDC. Assuming a gas fee of 0.00007
SOL and a price of 1 SOL = 100 USDC, the result would be:

- SOL: 1 - 0.1 (swapping amount in SOL) - 0.00007 (gas fee) = 0.89993
- USDC: 1 + 0.1 (swapping amount in SOL) * 100 (exchange rate) = 2

## Email Notification

If you want to use it, register an account on Outlook (or any other email service) and enable the SMTP server,
and change the following parameters in `./tools/resources.py` or add them to your environment variables:

- SMTP_SERVER
- SMTP_PORT
- SENDER_EMAIL
- EMAIL_PASSWORD

## Reminders

- Never trade all your SOL. Always leave some for gas fees.
- No matter if a trade is made or not, as long as it's sent to the blockchain, a gas fee will be charged (range is
  usually 0.00006 - 0.00015 SOL but can be higher).

## Resourcess

This project utilizes the documentation provided by [Jup](https://station.jup.ag/docs/apis/swap-api)
and [solana-py](https://michaelhly.com/solana-py/), also took some pieces of code
from [0xTaoDev](https://github.com/0xTaoDev/jupiter-python-cli)

## Data Source

Real-time data is sourced from Kaiko and the Binance API. However, only Kaiko data is used for building trading
strategies. If you're interested in leveraging Kaiko data, feel free to reach out. Note that it's not free.

## Some Good Blockchain Analytics Websites

- [BirdEye](https://birdeye.so/)
- [Defillama](https://defillama.com/airdrops?chain=Solana)
- [ArkhamIntelligence](https://platform.arkhamintelligence.com/explorer/entity/grayscale)
- [Dune](https://dune.com/etaetaeta/pyth-stakers-over-time)

Date: Feb. 13, 2024
configlock 0.1.2
Encrypted configuration manager supporting multiple formats.
Requires Python: >=3.6

# cryptoconfig

`cryptoconfig` is a Python package for managing encrypted configuration files across multiple formats (`.ini`, `.json`, `.yaml`, `.properties`, and `.txt`). It supports easy encryption and decryption with a focus on developer simplicity.

## Features

- Encrypt and decrypt configuration files in multiple formats.
- Temporary or persistent key management.
- Modular structure for extensibility.

## Installation

```bash
pip install cryptoconfig
```

## Usage

```python
from cryptoconfig import EncryptedConfigManager

manager = EncryptedConfigManager()
manager.save("config.json", {"key": "value"})
print(manager.load("config.json"))
```
escanervuln 1.0.8
Librería Modular de Detección de Vulnerabilidades en Python
Requires Python: >=3.7

# VulnScanner

VulnScanner es una librerÃ­a modular de detecciÃ³n de vulnerabilidades en Python. Detecta problemas como:
- InyecciÃ³n XSS
- DeserializaciÃ³n Insegura
- InyecciÃ³n de CÃ³digo

## InstalaciÃ³n

```bash
pip install vulnscanner