semvec/pypi-packages huggingface dataset:
exchange-rate-alert 0.8
Create desktop alerts for Transferwise exchange rates
License: MIT
Requires Python: >=3.6

Exchange Rate Alert
---

Creates desktop alerts when the Transferwise exchange rates hit a target rate. Checks conversion rate every time the polling interval has passed.

![Notification](./img/era_notification.jpg)

Currently running on Windows and Linux, PIP version 20.0.1

---

#### Before Using

Before the module can be used the user has to create a Transferwise API token. The detailed instructions can be found here - https://api-docs.transferwise.com/#payouts-guide-api-access  

The program will try and find the access token in the following manner
 
 1. System Variable named TCR - create a system variable named TCR
 
 2. Configuration file - located at `%HOMEDRIVE%%HOMEPATH%/.tcr` on windows or `~/.tcr` on linux

Add the token information in the file

    [default]
    token=aaaaaaaaa-bbbb-cccc-dddd-eeeeeeeeee
                      
---

#### Installation 

Install package from pip 
- `pip install exchange-rate-alert`

---

#### Usage

**1. From Command Prompt** 

- `era --source SEK --target INR --alert-rate 8.5 --poll-interval=30`

    ![CMD](./img/era_cli_option.JPG)
    
- `era` and respond to prompts

    ![CMD_PROMPTS](./img/era_cli_with_prompts.JPG)
    
   
**2. As a python module** 

Import into python script
- `from ratealert import ConversionAlert`
    
Call the constructor, wait for alert, profit!
- `ConversionAlert(source, target, alert_rate, poll_interval)`

**Example**

    from ratealert import ConversionAlert
    ConversionAlert('SEK', 'INR', 8.5, 60)

This will create a notification when the Transferwise exchange rate crosses the alert rate. 

![Notification](./img/era_notification.jpg)

The rates will be checked every 60 seconds if the polling interval option is not provided.

Exit the script by Ctrl+C

---

#### Change notes

0.8 - Polling interval as an option, minor fix for Linux

0.7 - support for Linux, installs packages based on OS

0.6 - Command line execution, input prompts

0.3 - Alert on a target conversion rate
 
0.1 - Alert at specified intervals


---

#### Next steps

- Quotation request and transfer lock on target conversion rate
- OAuth login for Transferwise
- Support for other clients (Remitly?)
varsubst 2.0.0
Substitute variables in a string with a given resolver. Act as a render template.
License: MIT

![Tests](https://github.com/tiboun/varsubst/workflows/tests/badge.svg)

Varsubst is a rewrite of [envsubst](https://github.com/ashafer01/python-envsubst).

Varsubst render templates from a string with a given resolver.

Currently varsubst support shell-like variables.

Entry-point has currently been removed. It may be added in the future.

Resolvers provided are :
- **EnvResolver** : provide value based on environnement variables.
- **DictResolver** : provide value based on a given python dictionary.

# Supported template variables

Varsubst support shell-like variables which are defined as follows:
- **$MY_SIMPLE_VAR** or **${MY_SIMPLE_VAR}**: will resolve the variable *MY_SIMPLE_VAR*
- **${USER-default}** : will resolve the variable *USER*. If variable is unset then *default* string is returned.
- **${USER-$DEFAULT_USER}** : will resolve the variable *USER*. If variable is unset, resolve the variable *DEFAULT_USER*.
- **${USER:-default}** : will resolve the variable *USER*. If variable is unset or empty then *default* string is returned.
- **${USER-$DEFAULT_USER}** : will resolve the variable *USER*. If variable is unset or empty, resolve the variable *DEFAULT_USER*.

# Usage

```python
from varsubst import varsubst
from varsubst.resolvers import DictResolver
from varsubst.interpolators.jinja_interpolator import JinjaInterpolator

print(varsubst('$USER')) # result : 'tiboun'

print(varsubst('$UNDEFINED')) # result : KeyUnresolvedException('UNDEFINED')

print(varsubst('$UNDEFINED', fail_on_unresolved=False)) # result : ''

print(varsubst('$UNDEFINED', fail_on_unresolved=False)) # result : ''

print(varsubst('$USER', resolver=DictResolver({'USER': 'tiboun'})))

print(varsubst('{{ USER }}', interpolator=JinjaInterpolator()))
```

# Extras

You may install **varsubst[jinja2]** as well if you intend to interpolate template with Jinja.
If you plan to use jinja2 only, you may install it yourself in your project instead of using this one.
ankisync 0.2.3.1
Doing in Anki what AnkiConnect cannot do
License: MIT
Requires Python: >=3.7
Keywords: anki-flashcards

> This project is deprecated. Please see [ankisync2](https://pypi.python.org/pypi/ankisync2/).

# ankisync

[![PyPI version shields.io](https://img.shields.io/pypi/v/ankisync.svg)](https://pypi.python.org/pypi/ankisync/)
[![PyPI license](https://img.shields.io/pypi/l/ankisync.svg)](https://pypi.python.org/pypi/ankisync/)

Doing what AnkiConnect cannot do, including
- Creating new `*.apkg`
- Creating new note type / model
- Upserting notes
- Setting next review
- Setting card statistics
- Note ids to Card ids

But of course, this is very unsafe compared to pure AnkiConnect. I will not hold liability to damage it may cost.

## Usage

Please close your `Anki` application first before doing this!

```python
from ankisync.anki import Anki
with Anki() as a:
    a.add_model(
        name='foo',
        fields=['field_a', 'field_b', 'field_c'],
        templates={
            'Forward': (QUESTION1, ANSWER1),
            'Reverse': (QUESTION2, ANSWER2)
        }
    )
```

Most of the other API's are similar to AnkiConnect, but `_by_id()`'s are preferred.

Creating a new `*.apkg` is also possible.

```python
from ankisync.apkg import Apkg
with Apkg('bar.apkg') as a:
    model_id = a.init(
        first_model=dict(
            name='foo',
            fields=['field_a', 'field_b', 'field_c'],
            templates={
                'Forward': (QUESTION1, ANSWER1),
                'Reverse': (QUESTION2, ANSWER2)
            }
        ),
        first_deck='baz',
        first_note_data=False
    )
    a.add_note({
        'modelName': 'foo',
        'deckId': 1,  # "Default" deck
        'fields': {
            'field_a': 'aaaaa',
            'field_b': 123  # Numbers will be converted to string.
        }
    })
```

For the example of how I use it in action, see https://github.com/patarapolw/zhlib/blob/master/zhlib/export.py

## Installation

```
pip install ankisync
```

## Contributions

- What features outside AnkiConnect (or inside) do you want? I will try to implement it.
- Help me understand the documentations, [AnkiDroid Wiki](https://github.com/ankidroid/Anki-Android/wiki/Database-Structure), and [Anki decks collaboration Wiki](http://decks.wikia.com/wiki/Anki_APKG_format_documentation) 
- Please help me implement the `NotImplemented` methods.

## Note

- This is the successor to [AnkiTools](https://github.com/patarapolw/AnkiTools). I will not update it anymore.