semvec/pypi-packages huggingface dataset:
KitronikPicoRobotics 1.0.0
Kitronik Robotics Board for Raspberry Pi Pico to drive 4 motors (or 2 stepper motors) and 8 servos

Other Languages: [FRANCAIS](README_FR.md)

# Kitronik-Pico-Robotics-Board-MicroPython

![Pico Robotics Board de KitroniK](docs/_static/pico-robotics-board.jpg)

A class and sample code to use the Kitronik Robotics board for Raspberry Pi Pico. (www.kitronik.co.uk/5329)

This is the microPython version. For CircuitPython see: https://github.com/KitronikLtd/Kitronik-Pico-Robotics-Board-CircuitPython

To use save `PicoRobotics.py` file onto the Pico so it can be imported

## Import the library and construct an instance:
``` python
import PicoRobotics
board = PicoRobotics.KitronikPicoRobotics()
```
This will initialise the PCA to default values.

## Drive a motor:
``` python
board.motorOn(motor, direction, speed)
```
where:
* __motor__ => 1 to 4
* __direction__ => f or r
* __speed__ => 0 to 100

## Stop a motor:
``` python
board.motorOff(motor)
```
where:
* __motor__ => 1 to 4

## Drive a Servo:
``` python
board.servoWrite(servo, degrees)
```
where:
* __servo__ => 1 to 8
* __degrees__ => 0-180

## Drive a Stepper:
``` python
board.step(stepperMotor,direction,steps)
```
where:
* __stepperMotor__ => 1 or 2 (stepper 1 is DC motors 1 and 2, stepper 2 is DC motors 3 and 4)
* __direction__ => f or r
* __steps__ => how many steps to make

### To step an angle:
``` python
board.stepAngle(stepperMotor, direction, angle)
```
where
* __stepperMotor__ => 1 or 2 (stepper 1 is DC motors 1 and 2, stepper 2 is DC motors 3 and 4)
* __direction__ => f or r
* __angle__ => how many degrees to move

The stepper code assumes 200 steps per rev (1.8 degrees resolution) and only does full steps.
There are defaulted parameters for stepper speeds (default 20mS pause between steps), hold position when finished stepping (off - saves energy) and how many steps per rev (200). Look at the function headers and function comments in [PicoRobotics.py](PicoRobotics.py) for more detail if you need to change them.

# Troubleshooting

If the code is run without the Pico Robotics board connected, or  if the board is not powered up it islikely that it will throw an OS Error (usually OS Error 5).
This is because it tries to communicate with an I2C device which is not responding.

This code is designed to be used as a module. See: https://kitronik.co.uk/blogs/resources/modules-micro-python-and-the-raspberry-pi-pico for more information
KitronikPicoMotorDriver 1.0.0
Kitronik Motor Driver Board for Raspberry Pi Pico to drive two motors simultaneously and 4 external connections to GPIO pins

Other languages: [FRANCAIS](README_FR.md)

# Kitronik-Pico-Motor-Driver-Board-MicroPython

![Kitronic Motor Driver](docs/_static/motor-driver.jpg)

A class and sample code to use the Kitronik Motor driver board for Raspberry Pi Pico. (www.kitronik.co.uk/5331)

This is the __MicroPython version__. For CircuitPython [see here](https://github.com/KitronikLtd/Kitronik-Pico-Motor-Driver-Board-CircuitPython)

To use save `PicoMotorDriver.py` file onto the Pico so it can be imported

## Import the library and construct an instance

``` python
import PicoMotorDriver
board = PicoMotorDriver.KitronikPicoMotor()
```

This will setup the correct pins to drive the motors.

## Drive a motor:

![Motor Driver with DC motor](docs/_static/motor-driver-dcmotor.jpg)

```python
board.motorOn(motor, direction, speed)
```
where:
* __motor__ => 1 or 2
* __direction__ => f or r
* __speed__ => 0 to 100

The following example drives the both motors in opposite direction.

``` python
import PicoMotorDriver
board = PicoMotorDriver.KitronikPicoMotor()
board.motorOn(1, 'f', 100)
board.motorOn(2, 'r', 50) # turning slower
```
See also the following example scripts:
* [SingleMotorTest.py](SingleMotorTest.py): Driving one motor at the time (in both direction with speed increase/decrease) script.
* [AllMotorTest.py](AllMotorTest.py): test various combination of speed for the both motor (like on a 2 wheels robot).
## Stop a motor:

``` python
board.motorOff(motor)
```

where:
* __motor__ => 1 or 2

## Drive a Stepper:

![Motor driver with Stepper](docs/_static/motor-driver-stepper.jpg)

### Rotating in steps

``` python
board.step(direction,steps)
```

where:
* __direction__ => f or r
* __steps__ => how many steps to make

See also the [StepperTest.py](StepperTest.py) example script.

### Rotating an angle
``` python
board.stepAngle(direction, angle)
```
where
* __direction__ => f or r
* __angle__ => how many degrees to move

### Default parameters

The stepper code assumes 200 steps per revolution (1.8 degrees per step) and only does full steps.

There are defaulted parameters for
* stepper speeds: default 20mS pause between steps,
* hold position when finished stepping: off - saves energy
* how many steps per rev: 200.
Look at the function headers and function comments in [PicoMotorDriver.py](PicoMotorDriver.py) for more detail if you need to change them.

# Troubleshooting

This code is designed to be used as a module. See: https://kitronik.co.uk/blogs/resources/modules-micro-python-and-the-raspberry-pi-pico for more information
ftsilicon 0.2
A Face tracking module
Keywords: python,Face tracking


# Face Track

## Key Features

* Tracks your face
* Quick and not much lag
* Simple code that is easy to understand and customize if needed

## License

MIT

---

> [http://advaith.athenaserv.com](http://advaith.athenaserv.com) &nbsp;&middot;&nbsp;
> GitHub [@advaith-22](https://github.com/advaith-22) &nbsp;&middot;&nbsp;
> Twitter [@_Advaith_S](https://twitter.com/_Advaith_S)
twine-unofficial 4.0.2.1
Collection of utilities for publishing packages on PyPI
Requires Python: >=3.7

.. image:: https://img.shields.io/pypi/v/twine-unofficial.svg
   :target: https://pypi.org/project/twine-unofficial

.. image:: https://img.shields.io/pypi/pyversions/twine-unofficial.svg
   :target: https://pypi.org/project/twine-unofficial

.. image:: https://img.shields.io/pypi/dm/twine-unofficial
   :target: https://pypi.org/project/twine-unofficial

.. image:: https://img.shields.io/readthedocs/twine
   :target: https://twine.readthedocs.io

twine-unofficial
================

This is a fork of the `official twine`_ project, with the following
changes:

- Upload command now supports ``--skip-tls-check`` option to disable
  TLS certificate verification. This is useful for uploading to
  repositories with self-signed certificates.

  Closed issue: `#463 <https://github.com/pypa/twine/pull/463>`_,
  rejected PR: `#387 <https://github.com/pypa/twine/issues/387>`_.

- Upload ``--skip-existing`` option now support pre-upload check
  against non-default PyPI repositories.

  Similar issue: `#919 <https://github.com/pypa/twine/issues/919>`_

- Upload command support ``--fail-on-existing`` option to fail if
  the package already exists on the repository.
  This is useful for avoid overwriting existing packages, even
  if PyPI is configured to allow overwriting.

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

.. code:: shell

   $ pip install twine-unofficial

Versioning
----------

Fork versioning is based on the official version, with the following
format: ``{official-version}.{fork-version}``.

twine
=====

Twine is a utility for `publishing`_ Python packages on `PyPI`_.

It provides build system independent uploads of source and binary
`distribution artifacts <distributions_>`_ for both new and existing
`projects`_.

See our `documentation`_ for a description of features, installation
and usage instructions, and links to additional resources.

Contributing
------------

See our `developer documentation`_ for how to get started, an
architectural overview, and our future development plans.

Code of Conduct
---------------

Everyone interacting in the Twine project's codebases, issue
trackers, chat rooms, and mailing lists is expected to follow the
`PSF Code of Conduct`_.

.. _`official twine`: https://github.com/pypa/twine
.. _`publishing`: https://packaging.python.org/tutorials/packaging-projects/
.. _`PyPI`: https://pypi.org
.. _`distributions`:
   https://packaging.python.org/glossary/#term-Distribution-Package
.. _`projects`: https://packaging.python.org/glossary/#term-Project
.. _`documentation`: https://twine.readthedocs.io/
.. _`developer documentation`:
   https://twine.readthedocs.io/en/latest/contributing.html
.. _`PSF Code of Conduct`: https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md
exhaustive-weighted-random-sampler 0.0.2
ExhaustiveWeightedRandomSampler is an advanced version of WeightedRandomSampler

# ExhaustiveWeightedRandomSampler
[![run test](https://github.com/louis-she/exhaustive-weighted-random-sampler/actions/workflows/test.yaml/badge.svg)](https://github.com/louis-she/exhaustive-weighted-random-sampler/actions/workflows/test.yaml)
[![codecov](https://codecov.io/gh/louis-she/exhaustive-weighted-random-sampler/branch/main/graph/badge.svg?token=MMZ4PEB1Y7)](https://codecov.io/gh/louis-she/exhaustive-weighted-random-sampler)

ExhaustiveWeightedRandomSampler can exhaustively sample the indices with a specific weight over epochs.

## Installation

```bash
pip install exhaustive-weighted-random-sampler
```

## Usage & Comparasion

```python
import torch
from torch.utils.data import WeightedRandomSampler
from exhaustive_weighted_random_sampler import ExhaustiveWeightedRandomSampler

sampler = WeightedRandomSampler([1, 1, 1, 1, 1, 1, 1, 1, 1, 10], num_samples=5)
for i in range(5):
    print(list(sampler))

"""
output:
[4, 3, 9, 3, 4]
[0, 5, 0, 9, 8]
[9, 9, 0, 9, 2]
[9, 9, 7, 9, 9]
[9, 9, 9, 9, 9]

explain: there are no 1 and 6, but 0 appears three times
"""

sampler = ExhaustiveWeightedRandomSampler([1, 1, 1, 1, 1, 1, 1, 1, 1, 10], num_samples=5)
for i in range(5):
    print(list(sampler))

"""
output:
[4, 6, 9, 9, 9]
[1, 0, 9, 9, 5]
[9, 7, 3, 8, 9]
[9, 2, 1, 9, 9]
[8, 9, 7, 3, 2]

explain: all the 0 to 8 appears in the yield results.
"""
```

## Use in DDP

It can be used in `DDP` if [pytorch-ignite](https://pytorch.org/ignite/index.html) has been installed.

```python
from ignite.distributed import DistributedProxySampler
from torch.utils.data import DataLoader

dataset = ...

sampler = DistributedProxySampler(
    ExhaustiveWeightedRandomSampler(weights, num_samples=10000)
)
loader = DataLoader(dataset, sampler=sampler, ...)
```