Current collected state Current
Observed since 20 Oct, 16:16 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
A10SA Script
A10SA Script
============
|PyPI| |Status| |Python Version| |License|
|Read the Docs| |Tests| |Codecov|
|pre-commit| |Black|
.. |PyPI| image:: https://img.shields.io/pypi/v/a10sa-script.svg
:target: https://pypi.org/project/a10sa-script/
:alt: PyPI
.. |Status| image:: https://img.shields.io/pypi/status/a10sa-script.svg
:target: https://pypi.org/project/a10sa-script/
:alt: Status
.. |Python Version| image:: https://img.shields.io/pypi/pyversions/a10sa-script
:target: https://pypi.org/project/a10sa-script
:alt: Python Version
.. |License| image:: https://img.shields.io/pypi/l/a10sa-script
:target: https://opensource.org/licenses/MIT
:alt: License
.. |Read the Docs| image:: https://img.shields.io/readthedocs/a10sa-script/latest.svg?label=Read%20the%20Docs
:target: https://a10sa-script.readthedocs.io/
:alt: Read the documentation at https://a10sa-script.readthedocs.io/
.. |Tests| image:: https://github.com/bhrevol/a10sa-script/workflows/Tests/badge.svg
:target: https://github.com/bhrevol/a10sa-script/actions?workflow=Tests
:alt: Tests
.. |Codecov| image:: https://codecov.io/gh/bhrevol/a10sa-script/branch/main/graph/badge.svg
:target: https://app.codecov.io/gh/bhrevol/a10sa-script
:alt: Codecov
.. |pre-commit| image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white
:target: https://github.com/pre-commit/pre-commit
:alt: pre-commit
.. |Black| image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/psf/black
:alt: Black
Library for manipulating Vorze A10 sex toy scripts.
Features
--------
* Read/Write/Convert supported script formats.
* Export scripts as `Buttplug Protocol`_ v4 command sequences.
* Buttplug Protocol v3 and earlier are no longer supported. For v3 and earlier support, use ``a10sa-script>=1.0,<2.0``
Experimental features
---------------------
**Experimental features are not fully tested, use at your own risk.**
* Control Vorze devices directly via BluetoothLE (tested with CycloneSA, untested for UFOSA, PistonSA).
* Control linear/funscript devices via `Buttplug Protocol`_ (requires `Intiface Central`_ 3.0 or later, tested with Handy).
*Bluetooth functionality requires installation with ``[ble]`` dependencies.*
.. _Buttplug Protocol: https://buttplug.io/
.. _Intiface Central: https://intiface.com/
Supported Formats
-----------------
* Vorze CSV
* Afesta/LPEG VCSX (``.bin``)
* Funscript JSON
Requirements
------------
* Python 3.11+
Installation
------------
You can install *A10SA Script* via pip_ from PyPI_:
.. code:: console
$ pip install a10sa-script
Optional dependencies can also be installed to enable experimental feature support:
.. code:: console
$ pip install a10sa-script[ble]
Usage
-----
Convert VCSX ``Vorze_CycloneSA.bin`` to ``script_cyclone.csv``:
.. code:: py
>>> from a10sa_script.script import VCSXCycloneScript, VorzeRotateScript
>>> with open("Vorze_CycloneSA.bin", "rb") as f:
... vcsx = VCSXCycloneScript.load(f)
>>> with open("script_cyclone.csv", "wb") as f:
... VorzeRotateScript(vcsx.commands).dump(f)
Convert CSV ``script_piston.csv`` to ``script.funscript``:
.. code:: py
>>> from a10sa_script.script import VorzeLinearScript, FunscriptScript
>>> with open("script_piston.csv", "rb") as f:
... csv = VorzeLinearScript.load(f)
>>> with open("script.funscript", "wb") as f:
... FunscriptScript.from_vorze(csv).dump(f)
Convert funscript ``script.funscript`` to ``script_piston.csv``:
.. code:: py
>>> from a10sa_script.script import VorzeLinearScript, FunscriptScript
>>> with open("script.funscript", "rb") as f:
... funscript = FunscriptScript.load(f)
>>> with open("script_piston.csv", "wb") as f:
... funscript.to_vorze().dump(f)
Please see the `Command-line Reference Usage`_ for details.
Contributing
------------
Contributions are very welcome.
To learn more, see the `Contributor Guide`_.
License
-------
Distributed under the terms of the `MIT license`_,
*A10SA Script* is free and open source software.
Issues
------
If you encounter any problems,
please `file an issue`_ along with a detailed description.
Credits
-------
This project was generated from `@cjolowicz`_'s `Hypermodern Python Cookiecutter`_ template.
.. _@cjolowicz: https://github.com/cjolowicz
.. _MIT license: https://opensource.org/licenses/MIT
.. _PyPI: https://pypi.org/
.. _Hypermodern Python Cookiecutter: https://github.com/cjolowicz/cookiecutter-hypermodern-python
.. _file an issue: https://github.com/bhrevol/a10sa-script/issues
.. _pip: https://pip.pypa.io/
.. github-only
.. _Contributor Guide: https://a10sa-script.readthedocs.io/en/latest/contributing.html
.. _Command-line Reference Usage: https://a10sa-script.readthedocs.io/en/latest/usage.html
pypistats · 83 observations shown. Missing days are unknown. Source category: overall: without mirrors.
| Date / source period | Value | Observed at |
|---|---|---|
| 2026-10-19 – 2026-10-19 | 10 | 2026-10-20T16:37:12.0768364Z |
| 2026-10-18 – 2026-10-18 | 2 | 2026-10-20T16:37:12.0768364Z |
| 2026-10-17 – 2026-10-17 | 2 | 2026-10-20T16:37:12.0768364Z |
| 2026-10-16 – 2026-10-16 | 2 | 2026-10-20T16:37:12.0768364Z |
| 2026-10-15 – 2026-10-15 | 1 | 2026-10-20T16:37:12.0768364Z |
| 2026-10-14 – 2026-10-14 | 5 | 2026-10-20T16:37:12.0768364Z |
| 2026-10-13 – 2026-10-13 | 2 | 2026-10-20T16:37:12.0768364Z |
| 2026-10-12 – 2026-10-12 | 8 | 2026-10-20T16:37:12.0768364Z |
| 2026-10-11 – 2026-10-11 | 1 | 2026-10-20T16:37:12.0768364Z |
| 2026-10-10 – 2026-10-10 | 2 | 2026-10-20T16:37:12.0768364Z |
| 2026-10-09 – 2026-10-09 | 5 | 2026-10-20T16:37:12.0768364Z |
| 2026-10-08 – 2026-10-08 | 23 | 2026-10-20T16:37:12.0768364Z |
| 2026-10-07 – 2026-10-07 | 10 | 2026-10-20T16:37:12.0768364Z |
| 2026-10-06 – 2026-10-06 | 4 | 2026-10-20T16:37:12.0768364Z |
| 2026-10-05 – 2026-10-05 | 3 | 2026-10-20T16:37:12.0768364Z |
| 2026-10-04 – 2026-10-04 | 14 | 2026-10-20T16:37:12.0768364Z |
| 2026-10-03 – 2026-10-03 | 4 | 2026-10-20T16:37:12.0768364Z |
| 2026-10-02 – 2026-10-02 | 1 | 2026-10-20T16:37:12.0768364Z |
| 2026-10-01 – 2026-10-01 | 26 | 2026-10-20T16:37:12.0768364Z |
| 2026-09-30 – 2026-09-30 | 4 | 2026-10-20T16:37:12.0768364Z |
| 2026-09-29 – 2026-09-29 | 13 | 2026-10-20T16:37:12.0768364Z |
| 2026-09-28 – 2026-09-28 | 4 | 2026-10-20T16:37:12.0768364Z |
| 2026-09-27 – 2026-09-27 | 5 | 2026-10-20T16:37:12.0768364Z |
| 2026-09-26 – 2026-09-26 | 7 | 2026-10-20T16:37:12.0768364Z |
| 2026-09-25 – 2026-09-25 | 19 | 2026-10-20T16:37:12.0768364Z |
| 2026-09-24 – 2026-09-24 | 19 | 2026-10-20T16:37:12.0768364Z |
| 2026-09-23 – 2026-09-23 | 5 | 2026-10-20T16:37:12.0768364Z |
| 2026-09-22 – 2026-09-22 | 9 | 2026-10-20T16:37:12.0768364Z |
| 2026-09-21 – 2026-09-21 | 8 | 2026-10-20T16:37:12.0768364Z |
| 2026-09-20 – 2026-09-20 | 2 | 2026-10-20T16:37:12.0768364Z |
| 2026-09-19 – 2026-09-19 | 2 | 2026-10-20T16:37:12.0768364Z |
| 2026-09-18 – 2026-09-18 | 6 | 2026-10-20T16:37:12.0768364Z |
| 2026-09-17 – 2026-09-17 | 2 | 2026-10-20T16:37:12.0768364Z |
| 2026-09-16 – 2026-09-16 | 13 | 2026-10-20T16:37:12.0768364Z |
| 2026-09-15 – 2026-09-15 | 15 | 2026-10-20T16:37:12.0768364Z |
| 2026-09-14 – 2026-09-14 | 3 | 2026-10-20T16:37:12.0768364Z |
| 2026-09-13 – 2026-09-13 | 8 | 2026-10-20T16:37:12.0768364Z |
| 2026-09-12 – 2026-09-12 | 5 | 2026-10-20T16:37:12.0768364Z |
| 2026-09-11 – 2026-09-11 | 3 | 2026-10-20T16:37:12.0768364Z |
| 2026-09-10 – 2026-09-10 | 2 | 2026-10-20T16:37:12.0768364Z |
| 2026-09-09 – 2026-09-09 | 2 | 2026-10-20T16:37:12.0768364Z |
| 2026-09-07 – 2026-09-07 | 10 | 2026-10-20T16:37:12.0768364Z |
| 2026-09-06 – 2026-09-06 | 2 | 2026-10-20T16:37:12.0768364Z |
| 2026-09-05 – 2026-09-05 | 6 | 2026-10-20T16:37:12.0768364Z |
| 2026-09-04 – 2026-09-04 | 2 | 2026-10-20T16:37:12.0768364Z |
| 2026-09-03 – 2026-09-03 | 3 | 2026-10-20T16:37:12.0768364Z |
| 2026-09-02 – 2026-09-02 | 2 | 2026-10-20T16:37:12.0768364Z |
| 2026-09-01 – 2026-09-01 | 25 | 2026-10-20T16:37:12.0768364Z |
| 2026-08-31 – 2026-08-31 | 3 | 2026-10-20T16:37:12.0768364Z |
| 2026-08-29 – 2026-08-29 | 1 | 2026-10-20T16:37:12.0768364Z |
| 2026-08-28 – 2026-08-28 | 2 | 2026-10-20T16:37:12.0768364Z |
| 2026-08-27 – 2026-08-27 | 1 | 2026-10-20T16:37:12.0768364Z |
| 2026-08-25 – 2026-08-25 | 3 | 2026-10-20T16:37:12.0768364Z |
| 2026-08-24 – 2026-08-24 | 17 | 2026-10-20T16:37:12.0768364Z |
| 2026-08-23 – 2026-08-23 | 6 | 2026-10-20T16:37:12.0768364Z |
| 2026-08-21 – 2026-08-21 | 1 | 2026-10-20T16:37:12.0768364Z |
| 2026-08-20 – 2026-08-20 | 2 | 2026-10-20T16:37:12.0768364Z |
| 2026-08-19 – 2026-08-19 | 3 | 2026-10-20T16:37:12.0768364Z |
| 2026-08-18 – 2026-08-18 | 54 | 2026-10-20T16:37:12.0768364Z |
| 2026-08-17 – 2026-08-17 | 9 | 2026-10-20T16:37:12.0768364Z |
| 2026-08-16 – 2026-08-16 | 4 | 2026-10-20T16:37:12.0768364Z |
| 2026-08-15 – 2026-08-15 | 2 | 2026-10-20T16:37:12.0768364Z |
| 2026-08-14 – 2026-08-14 | 6 | 2026-10-20T16:37:12.0768364Z |
| 2026-08-13 – 2026-08-13 | 3 | 2026-10-20T16:37:12.0768364Z |
| 2026-08-12 – 2026-08-12 | 1 | 2026-10-20T16:37:12.0768364Z |
| 2026-08-11 – 2026-08-11 | 4 | 2026-10-20T16:37:12.0768364Z |
| 2026-08-10 – 2026-08-10 | 1 | 2026-10-20T16:37:12.0768364Z |
| 2026-08-09 – 2026-08-09 | 9 | 2026-10-20T16:37:12.0768364Z |
| 2026-08-07 – 2026-08-07 | 2 | 2026-10-20T16:37:12.0768364Z |
| 2026-08-06 – 2026-08-06 | 3 | 2026-10-20T16:37:12.0768364Z |
| 2026-08-04 – 2026-08-04 | 10 | 2026-10-20T16:37:12.0768364Z |
| 2026-08-03 – 2026-08-03 | 16 | 2026-10-20T16:37:12.0768364Z |
| 2026-08-02 – 2026-08-02 | 1 | 2026-10-20T16:37:12.0768364Z |
| 2026-08-01 – 2026-08-01 | 1 | 2026-10-20T16:37:12.0768364Z |
| 2026-07-31 – 2026-07-31 | 2 | 2026-10-20T16:37:12.0768364Z |
| 2026-07-30 – 2026-07-30 | 4 | 2026-10-20T16:37:12.0768364Z |
| 2026-07-29 – 2026-07-29 | 13 | 2026-10-20T16:37:12.0768364Z |
| 2026-07-27 – 2026-07-27 | 2 | 2026-10-20T16:37:12.0768364Z |
| 2026-07-26 – 2026-07-26 | 5 | 2026-10-20T16:37:12.0768364Z |
| 2026-07-25 – 2026-07-25 | 1 | 2026-10-20T16:37:12.0768364Z |
| 2026-07-24 – 2026-07-24 | 3 | 2026-10-20T16:37:12.0768364Z |
| 2026-07-23 – 2026-07-23 | 3 | 2026-10-20T16:37:12.0768364Z |
| 2026-07-22 – 2026-07-22 | 3 | 2026-10-20T16:37:12.0768364Z |
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 2.0.0 | 16 Mar 2026 | 5 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 16:16 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:1643dfe4c75bb6e63a04e128209089b1a3309b8be9aaaa898e28d6b7c69001ca