Catalog PyPI
PACKAGE EXPLORERView in registry

a10sa-script

PyPI

A10SA Script

Versions collected1
Direct dependencies5From release 2.0.0
Last observed20 Oct, 16:16 UTC

README

Version 2.0.0 documentation
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

Downloads & popularity

10downloads
1-day window · source-reported counts19 Oct 2026
54270
2026-07-22: 3 · observed 2026-10-20T16:37:12.0768364Z · period 2026-07-22–2026-07-222026-07-23: 3 · observed 2026-10-20T16:37:12.0768364Z · period 2026-07-23–2026-07-232026-07-24: 3 · observed 2026-10-20T16:37:12.0768364Z · period 2026-07-24–2026-07-242026-07-25: 1 · observed 2026-10-20T16:37:12.0768364Z · period 2026-07-25–2026-07-252026-07-26: 5 · observed 2026-10-20T16:37:12.0768364Z · period 2026-07-26–2026-07-262026-07-27: 2 · observed 2026-10-20T16:37:12.0768364Z · period 2026-07-27–2026-07-272026-07-29: 13 · observed 2026-10-20T16:37:12.0768364Z · period 2026-07-29–2026-07-292026-07-30: 4 · observed 2026-10-20T16:37:12.0768364Z · period 2026-07-30–2026-07-302026-07-31: 2 · observed 2026-10-20T16:37:12.0768364Z · period 2026-07-31–2026-07-312026-08-01: 1 · observed 2026-10-20T16:37:12.0768364Z · period 2026-08-01–2026-08-012026-08-02: 1 · observed 2026-10-20T16:37:12.0768364Z · period 2026-08-02–2026-08-022026-08-03: 16 · observed 2026-10-20T16:37:12.0768364Z · period 2026-08-03–2026-08-032026-08-04: 10 · observed 2026-10-20T16:37:12.0768364Z · period 2026-08-04–2026-08-042026-08-06: 3 · observed 2026-10-20T16:37:12.0768364Z · period 2026-08-06–2026-08-062026-08-07: 2 · observed 2026-10-20T16:37:12.0768364Z · period 2026-08-07–2026-08-072026-08-09: 9 · observed 2026-10-20T16:37:12.0768364Z · period 2026-08-09–2026-08-092026-08-10: 1 · observed 2026-10-20T16:37:12.0768364Z · period 2026-08-10–2026-08-102026-08-11: 4 · observed 2026-10-20T16:37:12.0768364Z · period 2026-08-11–2026-08-112026-08-12: 1 · observed 2026-10-20T16:37:12.0768364Z · period 2026-08-12–2026-08-122026-08-13: 3 · observed 2026-10-20T16:37:12.0768364Z · period 2026-08-13–2026-08-132026-08-14: 6 · observed 2026-10-20T16:37:12.0768364Z · period 2026-08-14–2026-08-142026-08-15: 2 · observed 2026-10-20T16:37:12.0768364Z · period 2026-08-15–2026-08-152026-08-16: 4 · observed 2026-10-20T16:37:12.0768364Z · period 2026-08-16–2026-08-162026-08-17: 9 · observed 2026-10-20T16:37:12.0768364Z · period 2026-08-17–2026-08-172026-08-18: 54 · observed 2026-10-20T16:37:12.0768364Z · period 2026-08-18–2026-08-182026-08-19: 3 · observed 2026-10-20T16:37:12.0768364Z · period 2026-08-19–2026-08-192026-08-20: 2 · observed 2026-10-20T16:37:12.0768364Z · period 2026-08-20–2026-08-202026-08-21: 1 · observed 2026-10-20T16:37:12.0768364Z · period 2026-08-21–2026-08-212026-08-23: 6 · observed 2026-10-20T16:37:12.0768364Z · period 2026-08-23–2026-08-232026-08-24: 17 · observed 2026-10-20T16:37:12.0768364Z · period 2026-08-24–2026-08-242026-08-25: 3 · observed 2026-10-20T16:37:12.0768364Z · period 2026-08-25–2026-08-252026-08-27: 1 · observed 2026-10-20T16:37:12.0768364Z · period 2026-08-27–2026-08-272026-08-28: 2 · observed 2026-10-20T16:37:12.0768364Z · period 2026-08-28–2026-08-282026-08-29: 1 · observed 2026-10-20T16:37:12.0768364Z · period 2026-08-29–2026-08-292026-08-31: 3 · observed 2026-10-20T16:37:12.0768364Z · period 2026-08-31–2026-08-312026-09-01: 25 · observed 2026-10-20T16:37:12.0768364Z · period 2026-09-01–2026-09-012026-09-02: 2 · observed 2026-10-20T16:37:12.0768364Z · period 2026-09-02–2026-09-022026-09-03: 3 · observed 2026-10-20T16:37:12.0768364Z · period 2026-09-03–2026-09-032026-09-04: 2 · observed 2026-10-20T16:37:12.0768364Z · period 2026-09-04–2026-09-042026-09-05: 6 · observed 2026-10-20T16:37:12.0768364Z · period 2026-09-05–2026-09-052026-09-06: 2 · observed 2026-10-20T16:37:12.0768364Z · period 2026-09-06–2026-09-062026-09-07: 10 · observed 2026-10-20T16:37:12.0768364Z · period 2026-09-07–2026-09-072026-09-09: 2 · observed 2026-10-20T16:37:12.0768364Z · period 2026-09-09–2026-09-092026-09-10: 2 · observed 2026-10-20T16:37:12.0768364Z · period 2026-09-10–2026-09-102026-09-11: 3 · observed 2026-10-20T16:37:12.0768364Z · period 2026-09-11–2026-09-112026-09-12: 5 · observed 2026-10-20T16:37:12.0768364Z · period 2026-09-12–2026-09-122026-09-13: 8 · observed 2026-10-20T16:37:12.0768364Z · period 2026-09-13–2026-09-132026-09-14: 3 · observed 2026-10-20T16:37:12.0768364Z · period 2026-09-14–2026-09-142026-09-15: 15 · observed 2026-10-20T16:37:12.0768364Z · period 2026-09-15–2026-09-152026-09-16: 13 · observed 2026-10-20T16:37:12.0768364Z · period 2026-09-16–2026-09-162026-09-17: 2 · observed 2026-10-20T16:37:12.0768364Z · period 2026-09-17–2026-09-172026-09-18: 6 · observed 2026-10-20T16:37:12.0768364Z · period 2026-09-18–2026-09-182026-09-19: 2 · observed 2026-10-20T16:37:12.0768364Z · period 2026-09-19–2026-09-192026-09-20: 2 · observed 2026-10-20T16:37:12.0768364Z · period 2026-09-20–2026-09-202026-09-21: 8 · observed 2026-10-20T16:37:12.0768364Z · period 2026-09-21–2026-09-212026-09-22: 9 · observed 2026-10-20T16:37:12.0768364Z · period 2026-09-22–2026-09-222026-09-23: 5 · observed 2026-10-20T16:37:12.0768364Z · period 2026-09-23–2026-09-232026-09-24: 19 · observed 2026-10-20T16:37:12.0768364Z · period 2026-09-24–2026-09-242026-09-25: 19 · observed 2026-10-20T16:37:12.0768364Z · period 2026-09-25–2026-09-252026-09-26: 7 · observed 2026-10-20T16:37:12.0768364Z · period 2026-09-26–2026-09-262026-09-27: 5 · observed 2026-10-20T16:37:12.0768364Z · period 2026-09-27–2026-09-272026-09-28: 4 · observed 2026-10-20T16:37:12.0768364Z · period 2026-09-28–2026-09-282026-09-29: 13 · observed 2026-10-20T16:37:12.0768364Z · period 2026-09-29–2026-09-292026-09-30: 4 · observed 2026-10-20T16:37:12.0768364Z · period 2026-09-30–2026-09-302026-10-01: 26 · observed 2026-10-20T16:37:12.0768364Z · period 2026-10-01–2026-10-012026-10-02: 1 · observed 2026-10-20T16:37:12.0768364Z · period 2026-10-02–2026-10-022026-10-03: 4 · observed 2026-10-20T16:37:12.0768364Z · period 2026-10-03–2026-10-032026-10-04: 14 · observed 2026-10-20T16:37:12.0768364Z · period 2026-10-04–2026-10-042026-10-05: 3 · observed 2026-10-20T16:37:12.0768364Z · period 2026-10-05–2026-10-052026-10-06: 4 · observed 2026-10-20T16:37:12.0768364Z · period 2026-10-06–2026-10-062026-10-07: 10 · observed 2026-10-20T16:37:12.0768364Z · period 2026-10-07–2026-10-072026-10-08: 23 · observed 2026-10-20T16:37:12.0768364Z · period 2026-10-08–2026-10-082026-10-09: 5 · observed 2026-10-20T16:37:12.0768364Z · period 2026-10-09–2026-10-092026-10-10: 2 · observed 2026-10-20T16:37:12.0768364Z · period 2026-10-10–2026-10-102026-10-11: 1 · observed 2026-10-20T16:37:12.0768364Z · period 2026-10-11–2026-10-112026-10-12: 8 · observed 2026-10-20T16:37:12.0768364Z · period 2026-10-12–2026-10-122026-10-13: 2 · observed 2026-10-20T16:37:12.0768364Z · period 2026-10-13–2026-10-132026-10-14: 5 · observed 2026-10-20T16:37:12.0768364Z · period 2026-10-14–2026-10-142026-10-15: 1 · observed 2026-10-20T16:37:12.0768364Z · period 2026-10-15–2026-10-152026-10-16: 2 · observed 2026-10-20T16:37:12.0768364Z · period 2026-10-16–2026-10-162026-10-17: 2 · observed 2026-10-20T16:37:12.0768364Z · period 2026-10-17–2026-10-172026-10-18: 2 · observed 2026-10-20T16:37:12.0768364Z · period 2026-10-18–2026-10-182026-10-19: 10 · observed 2026-10-20T16:37:12.0768364Z · period 2026-10-19–2026-10-19
22 Jul19 Oct

pypistats · 83 observations shown. Missing days are unknown. Source category: overall: without mirrors.

View observed values
Date / source periodValueObserved at
2026-10-19 – 2026-10-19102026-10-20T16:37:12.0768364Z
2026-10-18 – 2026-10-1822026-10-20T16:37:12.0768364Z
2026-10-17 – 2026-10-1722026-10-20T16:37:12.0768364Z
2026-10-16 – 2026-10-1622026-10-20T16:37:12.0768364Z
2026-10-15 – 2026-10-1512026-10-20T16:37:12.0768364Z
2026-10-14 – 2026-10-1452026-10-20T16:37:12.0768364Z
2026-10-13 – 2026-10-1322026-10-20T16:37:12.0768364Z
2026-10-12 – 2026-10-1282026-10-20T16:37:12.0768364Z
2026-10-11 – 2026-10-1112026-10-20T16:37:12.0768364Z
2026-10-10 – 2026-10-1022026-10-20T16:37:12.0768364Z
2026-10-09 – 2026-10-0952026-10-20T16:37:12.0768364Z
2026-10-08 – 2026-10-08232026-10-20T16:37:12.0768364Z
2026-10-07 – 2026-10-07102026-10-20T16:37:12.0768364Z
2026-10-06 – 2026-10-0642026-10-20T16:37:12.0768364Z
2026-10-05 – 2026-10-0532026-10-20T16:37:12.0768364Z
2026-10-04 – 2026-10-04142026-10-20T16:37:12.0768364Z
2026-10-03 – 2026-10-0342026-10-20T16:37:12.0768364Z
2026-10-02 – 2026-10-0212026-10-20T16:37:12.0768364Z
2026-10-01 – 2026-10-01262026-10-20T16:37:12.0768364Z
2026-09-30 – 2026-09-3042026-10-20T16:37:12.0768364Z
2026-09-29 – 2026-09-29132026-10-20T16:37:12.0768364Z
2026-09-28 – 2026-09-2842026-10-20T16:37:12.0768364Z
2026-09-27 – 2026-09-2752026-10-20T16:37:12.0768364Z
2026-09-26 – 2026-09-2672026-10-20T16:37:12.0768364Z
2026-09-25 – 2026-09-25192026-10-20T16:37:12.0768364Z
2026-09-24 – 2026-09-24192026-10-20T16:37:12.0768364Z
2026-09-23 – 2026-09-2352026-10-20T16:37:12.0768364Z
2026-09-22 – 2026-09-2292026-10-20T16:37:12.0768364Z
2026-09-21 – 2026-09-2182026-10-20T16:37:12.0768364Z
2026-09-20 – 2026-09-2022026-10-20T16:37:12.0768364Z
2026-09-19 – 2026-09-1922026-10-20T16:37:12.0768364Z
2026-09-18 – 2026-09-1862026-10-20T16:37:12.0768364Z
2026-09-17 – 2026-09-1722026-10-20T16:37:12.0768364Z
2026-09-16 – 2026-09-16132026-10-20T16:37:12.0768364Z
2026-09-15 – 2026-09-15152026-10-20T16:37:12.0768364Z
2026-09-14 – 2026-09-1432026-10-20T16:37:12.0768364Z
2026-09-13 – 2026-09-1382026-10-20T16:37:12.0768364Z
2026-09-12 – 2026-09-1252026-10-20T16:37:12.0768364Z
2026-09-11 – 2026-09-1132026-10-20T16:37:12.0768364Z
2026-09-10 – 2026-09-1022026-10-20T16:37:12.0768364Z
2026-09-09 – 2026-09-0922026-10-20T16:37:12.0768364Z
2026-09-07 – 2026-09-07102026-10-20T16:37:12.0768364Z
2026-09-06 – 2026-09-0622026-10-20T16:37:12.0768364Z
2026-09-05 – 2026-09-0562026-10-20T16:37:12.0768364Z
2026-09-04 – 2026-09-0422026-10-20T16:37:12.0768364Z
2026-09-03 – 2026-09-0332026-10-20T16:37:12.0768364Z
2026-09-02 – 2026-09-0222026-10-20T16:37:12.0768364Z
2026-09-01 – 2026-09-01252026-10-20T16:37:12.0768364Z
2026-08-31 – 2026-08-3132026-10-20T16:37:12.0768364Z
2026-08-29 – 2026-08-2912026-10-20T16:37:12.0768364Z
2026-08-28 – 2026-08-2822026-10-20T16:37:12.0768364Z
2026-08-27 – 2026-08-2712026-10-20T16:37:12.0768364Z
2026-08-25 – 2026-08-2532026-10-20T16:37:12.0768364Z
2026-08-24 – 2026-08-24172026-10-20T16:37:12.0768364Z
2026-08-23 – 2026-08-2362026-10-20T16:37:12.0768364Z
2026-08-21 – 2026-08-2112026-10-20T16:37:12.0768364Z
2026-08-20 – 2026-08-2022026-10-20T16:37:12.0768364Z
2026-08-19 – 2026-08-1932026-10-20T16:37:12.0768364Z
2026-08-18 – 2026-08-18542026-10-20T16:37:12.0768364Z
2026-08-17 – 2026-08-1792026-10-20T16:37:12.0768364Z
2026-08-16 – 2026-08-1642026-10-20T16:37:12.0768364Z
2026-08-15 – 2026-08-1522026-10-20T16:37:12.0768364Z
2026-08-14 – 2026-08-1462026-10-20T16:37:12.0768364Z
2026-08-13 – 2026-08-1332026-10-20T16:37:12.0768364Z
2026-08-12 – 2026-08-1212026-10-20T16:37:12.0768364Z
2026-08-11 – 2026-08-1142026-10-20T16:37:12.0768364Z
2026-08-10 – 2026-08-1012026-10-20T16:37:12.0768364Z
2026-08-09 – 2026-08-0992026-10-20T16:37:12.0768364Z
2026-08-07 – 2026-08-0722026-10-20T16:37:12.0768364Z
2026-08-06 – 2026-08-0632026-10-20T16:37:12.0768364Z
2026-08-04 – 2026-08-04102026-10-20T16:37:12.0768364Z
2026-08-03 – 2026-08-03162026-10-20T16:37:12.0768364Z
2026-08-02 – 2026-08-0212026-10-20T16:37:12.0768364Z
2026-08-01 – 2026-08-0112026-10-20T16:37:12.0768364Z
2026-07-31 – 2026-07-3122026-10-20T16:37:12.0768364Z
2026-07-30 – 2026-07-3042026-10-20T16:37:12.0768364Z
2026-07-29 – 2026-07-29132026-10-20T16:37:12.0768364Z
2026-07-27 – 2026-07-2722026-10-20T16:37:12.0768364Z
2026-07-26 – 2026-07-2652026-10-20T16:37:12.0768364Z
2026-07-25 – 2026-07-2512026-10-20T16:37:12.0768364Z
2026-07-24 – 2026-07-2432026-10-20T16:37:12.0768364Z
2026-07-23 – 2026-07-2332026-10-20T16:37:12.0768364Z
2026-07-22 – 2026-07-2232026-10-20T16:37:12.0768364Z

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
2.0.016 Mar 20265

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
bhrevol/a10sa-script

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 16:16 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:1643dfe4c75bb6e63a04e128209089b1a3309b8be9aaaa898e28d6b7c69001ca