semvec/pypi-packages huggingface dataset:
ig-trading-lib 0.5.0
A Python library for IG Trading.
License: MIT
Requires Python: <4.0,>=3.9

# IG Trading Library

This is a Python library designed to interface with the IG Trading platform. It provides a straightforward and Pythonic way to interact with the IG Trading API, allowing for the automation of trading tasks, management of accounts, access to market data, and more.


## Prerequisites

- Python 3.9
- make

## Modules

The project consists of several modules:

- `authentication`: This module handles authentication with the IG Rest API.
- `trading`: This module provides functionalities for trading operations. Currently, it includes methods for getting positions.


## Running the Tests

The project contains several tests to ensure its functionalities work as expected. To run the tests, use the following command:

```bash
make test
```

## Features

- Authentication: The project includes an `AuthenticationService` class that handles authentication.
- Trading: Work in progress.

## Contributing

Contributions are welcome. Please feel free to fork the repository and create a pull request.

## License

This project is licensed under the MIT License.

## Contact

If you have any questions, feel free to reach out to me on GitHub.

## Disclaimer

This library is not affiliated with, authorized, endorsed, or in any way officially connected with IG Markets Ltd. Use at your own risk.
withwait 0.1.2
A simple utility to ensure that sleep operations always complete
License: MIT
Requires Python: <4.0,>=3.9
Keywords: testing, with, sleep, time, wait, delay

# Withwait

A simple utility to ensure that sleep operations always complete, even if an
exception happens within the with statement.

## Usage

```py
from withwait import wait

# Start a 2 second wait timer
with wait(2):
    # These operations happen while the timer is run
    print("Started timer")
    # Even if an error is raised, the timer will always be allowed to complete
    # before the withwait block is closed
    raise Exception("Yikes")

# The exception isn't actually caught so this code won't run
print("This never prints")
```

### Cancelling a timer

If you need to stop the timer during the operation, you can stop it using the
`cancel` method. Normal running will resume from the end of the `with`
statement.

```py
from withwait import wait

with wait(1) as timer:
    # Stop the timer
    timer.cancel()
    # Code after this point in the with statement won't be run

# Program flow resumes normally after
print("Ok")
```

* Different timers can be cancelled separately - if you cancel one timer, all
  other timers will run to completion.

### Aborting a timer

If you don't want to resume normal program flow after the `with` statement,
you can stop the timer using the `abort` method.

```py
from withwait import wait, WithwaitAbort

try:
    with wait(1) as timer:
        # Abort the timer
        timer.abort()
        # Code after this point in the with statement won't be run

    # And code after the with statement won't be run either
    print("Nope")

# We need to catch the exception ourselves
except WithwaitAbort:
    print("Caught")
```

* Arguments can be provided to the `abort` method which will be
  given as arguments to the exception
* Different timers can be aborted separately - if you cancel one timer, all
  other timers will run to completion.

### Aborting all timers

If you want to cancel anything, you can call the `abort_all` method. You can
also raise a `WithwaitAbortAll` exception, which will have the same effect.

```py
from withwait import wait, WithwaitAbortAll

try:
    with wait(1):
        with wait(1):
            with wait(1) as timer:
                # Abort all timers
                timer.abort_all()
except WithwaitAbortAll:
    print("All timers stopped")
```