semvec/pypi-packages huggingface dataset:
pycycle 0.0.8
Find and repair your import cycles in any project
License: MIT

Pycycle: Find and fix circular imports in python projects
=========================================================

.. image:: https://img.shields.io/pypi/v/pycycle.svg
    :target: https://pypi.python.org/pypi/pycycle

.. image:: https://img.shields.io/pypi/l/pycycle.svg
    :target: https://pypi.python.org/pypi/pycycle

.. image:: https://img.shields.io/pypi/wheel/pycycle.svg
    :target: https://pypi.python.org/pypi/pycycle

.. image:: https://img.shields.io/pypi/pyversions/pipenv.svg
    :target: https://pypi.python.org/pypi/pycycle

.. image:: https://api.travis-ci.org/bndr/pycycle.svg?branch=master
    :target: https://travis-ci.org/bndr/pycycle

---------------


**Pycycle** is an experimental project that aims to help python developers fix their circular dependencies problems.

*ImportError: Cannot import name X* is a python exception that is related to the circular imports, but the exception tells nothing about where or what.

This tool automatically analyzes the imports of your projects, and looks for imports that may cause a circular dependency problem.

.. image:: https://i.imgur.com/8JeLQxu.gif

Features
--------

- **Shows you the whole chain of the circular imports.**
- Gives you lines of code where each import is, for you to easily find and fix the problem.
- Visualizes your imports in a graph **(Not Yet Implemented)**



Usage
-----

::

    $ pycycle
    Usage: pycycle [OPTIONS] COMMAND [ARGS]...


    Examples:
        Get the circular imports in current project:
        $ pycycle --here
        Look for circular imports in another project
        $ pycycle --source /home/user/workspace/awesome_project
        Ignore specific directories when looking for circular import
        $ pycycle --source /home/user/workspace/awesome_project --ignore some_dir,some_dir2
        Get verbose output
        $ pycycle --source /home/user/workspace/awesome_project --verbose

    Options:
      --verbose        Verbose output.
      --here           Try to find cycles in the current project.
      --source TEXT    Try to find cycles in the path provided.
      --ignore TEXT    Comma separated directories that will be ignored during
                       analysis.
      --encoding TEXT  Change enconding with which the project is read.
      --help           Show this message then exit.
      --version        Show the version and exit.

::

    $ pycycle --here
    Project successfully transformed to AST, checking imports for cycles..
    Cycle Found :(
    a_module.a_file: Line 1 -> a_module.b_module.b_file: Line 1 -> c_module.c_file: Line 1 -> d_module.d_file: Line 1 =>> a_module.a_file
    Finished.

::

    $ pycycle --source /Users/vkravcenko/workspace/awesome_project
    Target source provided:/Users/vkravcenko/workspace/awesome_project
    Project successfully transformed to AST, checking imports for cycles..
    No worries, no cycles here!
    If you think some cycle was missed, please open an Issue on Github.
    Finished.


Installation
------------

::

    $ pip install pycycle
PushingBox 0.1.3
A very simple Python client for the PushingBox Notification service API.
License: MIT
Keywords: PushingBox Notification API

# pushingbox
A very simple Python client for the [PushingBox](https://www.pushingbox.com/index.php) Notification service API.

## Installation
Simply install using pip as follows:

`pip install PushingBox`

or clone this repo and run the following:

`python setup.py install`

You will need to install the [requests](http://python-requests.org) module (`pip install -r requirements.txt`).

## Usage
This is extremely simple. First create a 'Scenario' via the [PushingBox dashboard](https://www.pushingbox.com/scenarios.php). This will generate a DeviceID for your scenario, for example: `v0123456789ABCDE`. To use this scenario with this python library is as easy as the following:

```
>>> from PushingBox import PushingBox
>>> pbox=PushingBox()
>>> pbox.push('v0123456789ABCDE')
```

If your Scenario contains variables, as per the following example from the [PushingBox API page](https://www.pushingbox.com/api.php):

`The $room$ temperature is $temperature$ degrees`

then you can pass these variables as keyword arguments to the `push()` method as follows:

`>>> pbox.push('v0123456789ABCDE', room='kitchen', temperature='23')`

Its as simple as that.

## Compatability
So far, this module has been tested with Python 3.5 on macOS Sierra (10.12.1). As this is an extemely simple pure python module, I see no reason why it won't work anywhere and everywhere, but if doesn't: let me know (preferably with a stack trace!).