Skip to main content

ScySeqTools is a suite of software: encoder and analyser

Project description

ScySeqTools

ScySeqTools is a Python toolkit for coding and analysing behaviours. It currently provides two command line launchers:

  • scyseq-encoder
  • scyseq-analyser

Requirements

  • Python 3.9 or newer
  • Hatch, used to create and manage the development virtual environment
  • VLC 64-bit, required by the encoder through python-vlc
  • tkinter
    • Windows: included with the standard Python installer
    • Ubuntu/Debian: sudo apt install python3-tk
    • macOS: install Python from python.org if tkinter is missing

On Windows, install 64-bit VLC from:

https://www.videolan.org/vlc/download-windows.html

After installing VLC, this file should exist:

Test-Path "C:\Program Files\VideoLAN\VLC\libvlc.dll"

Starter Setup

Clone or download the project, then open a terminal in the project folder. On Windows, use PowerShell; on macOS or Linux, use your usual terminal.

cd path/to/scyseqtools

Replace path/to/scyseqtools with the folder where you cloned or downloaded the project.

1. Check Python

python --version

You should see Python 3.9 or newer.

2. Check Whether Hatch Is Installed

hatch --version

If your terminal says hatch is not found or not recognized, install it:

python -m pip install hatch

Then check again:

hatch --version

3. Create and Enter the Hatch Environment

From the project root, run:

hatch shell

Your prompt should now start with something like:

(scyseqtools) ...

That means you are inside the ScySeqTools virtual environment.

4. Install ScySeqTools in Editable Mode

Inside the Hatch shell, install the current project:

python -m pip install -e .

The -e option means "editable": Python imports ScySeqTools directly from this source folder, so local code changes are picked up without reinstalling every time.

5. Verify the Install

python -m pip show scyseqtools
python -c "import scyseqtools; print(scyseqtools.__file__)"
python -c "import scyseqtools.encoder.main; print('ok')"

If the last command prints ok, the package import works.

Run ScySeqTools

Inside the Hatch shell:

scyseq-encoder

or:

scyseq-analyser

The encoder opens a graphical interface and asks you to choose a working directory. ScySeqTools expects or creates media and data folders inside that working directory.

User Configuration

On first run, ScySeqTools Encoder creates an editable config file in the standard per-user config folder for your operating system:

Windows: %APPDATA%\ScySeqTools\Encoder\config.ini
Ubuntu/Linux: ~/.config/ScySeqTools/Encoder/config.ini
macOS: ~/Library/Application Support/ScySeqTools/Encoder/config.ini

The app loads configuration in this order:

  1. Bundled defaults inside the package or .exe.
  2. The user-editable OS config file shown above.
  3. A config.ini in the selected working directory, if present.

That means users can change global defaults in their user config folder, and a specific project can override them by placing its own config.ini in the project working folder. The last selected working directory is remembered in:

Windows: %APPDATA%\ScySeqTools\Encoder\cwdfile.ini
Ubuntu/Linux: ~/.local/state/ScySeqTools/Encoder/cwdfile.ini
macOS: ~/Library/Application Support/ScySeqTools/Encoder/cwdfile.ini

Encoder Window Layout

By default, the encoder opens with the classic single-window layout. To split the encoder into separate Information, Control, and Coding framework windows, add this to the AppData or project config.ini file:

[application]
encoder_layout = detached

Download Applications

GitHub Actions builds downloadable encoder and analyser applications for Windows, Ubuntu, macOS Intel, and macOS Apple Silicon. Each workflow run uploads temporary build artifacts:

ScySeqTools-Encoder-windows-x64-<tag>.zip
ScySeqTools-Encoder-ubuntu-22.04-x64-<tag>.tar.gz
ScySeqTools-Encoder-macos-x64-<tag>.zip
ScySeqTools-Encoder-macos-arm64-<tag>.zip
ScySeqTools-Analyser-windows-x64-<tag>.zip
ScySeqTools-Analyser-ubuntu-22.04-x64-<tag>.tar.gz
ScySeqTools-Analyser-macos-x64-<tag>.zip
ScySeqTools-Analyser-macos-arm64-<tag>.zip
SHA256SUMS.txt

The packaged encoder apps do not bundle VLC. Install VLC on the target machine before running the encoder. On Windows, confirm this file exists:

Test-Path "C:\Program Files\VideoLAN\VLC\libvlc.dll"

macOS builds are not Developer ID signed or notarized yet, so users may need to right-click the app and choose Open, or allow it from macOS Privacy & Security settings.

Build Applications Locally

From the project root, install build dependencies:

python -m pip install -e ".[dev,build]"

Then run the spec for your OS:

# Windows
pyinstaller --clean --noconfirm packaging/pyinstaller/scyseq-encoder-windows.spec
pyinstaller --clean --noconfirm packaging/pyinstaller/scyseq-analyser-windows.spec
# Ubuntu/Linux
pyinstaller --clean --noconfirm packaging/pyinstaller/scyseq-encoder-linux.spec
pyinstaller --clean --noconfirm packaging/pyinstaller/scyseq-analyser-linux.spec
# macOS
pyinstaller --clean --noconfirm packaging/pyinstaller/scyseq-encoder-macos.spec
pyinstaller --clean --noconfirm packaging/pyinstaller/scyseq-analyser-macos.spec

Run Tests

Inside the Hatch shell:

python -m pytest tests

Build the Documentation

The documentation is built with Sphinx.

First enter the Hatch environment from the project root:

hatch shell

Then navigate to the docs folder and build the HTML files:

On Windows:

cd docs
./make.bat html

On Linux/Mac:

cd docs
make html

The generated HTML documentation will be available in docs/build/html/. Open docs/build/html/index.html in your browser to view the documentation.

Contributing

Contributions to ScySeqTools are welcome!

To contribute:

  1. Fork the official repository: github.com/scyseq-tools/scyseqtools.
  2. Create a branch for your feature or bug fix.
  3. Submit a pull request with a clear description of changes.
  4. Ensure tests pass.

Tools used in this package:

Sphinx pytest Hatch doctest

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scyseqtools-0.0.1.tar.gz (97.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scyseqtools-0.0.1-py3-none-any.whl (51.6 kB view details)

Uploaded Python 3

File details

Details for the file scyseqtools-0.0.1.tar.gz.

File metadata

  • Download URL: scyseqtools-0.0.1.tar.gz
  • Upload date:
  • Size: 97.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for scyseqtools-0.0.1.tar.gz
Algorithm Hash digest
SHA256 9ed17c600b4cf11d373aaf47b4e30e1dbd6c702bbcd59f7a6a7592d73ca7bb04
MD5 aa65fd448967f7d946ca59b4c4e35eb3
BLAKE2b-256 b00ca9bf6c9d1b2289c7b7569b0f87044f8c14ab1202bec685cf98a3f9f5f00a

See more details on using hashes here.

Provenance

The following attestation bundles were made for scyseqtools-0.0.1.tar.gz:

Publisher: publish-pypi.yml on scyseq-tools/scyseqtools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scyseqtools-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: scyseqtools-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 51.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for scyseqtools-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8b078baccc467b09b1cfcfe5436dd96acd599e2aa9dd75928ca6b4a559eba230
MD5 52c31aa6a872255132dda00f8372e5d1
BLAKE2b-256 4c0e777e6098793d686e4b3e7f00b6d5433350b7a3a25c8ef130573039fc5cc5

See more details on using hashes here.

Provenance

The following attestation bundles were made for scyseqtools-0.0.1-py3-none-any.whl:

Publisher: publish-pypi.yml on scyseq-tools/scyseqtools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page