Skip to main content

Library for management of Annotated Research Contexts (ARCs) using an in-memory representation and runtimer agnostic contract systems.

Project description

logo

ARCtrl

ARCtrl the easy way to read, manipulate and write ARCs in .NET, JavaScript and Python! ❤️

Version Downloads
Nuget Nuget
NPM NPM
PyPI PyPI

Install

.NET

#r "nuget: ARCtrl"
<PackageReference Include="ARCtrl" Version="1.1.0" />

JavaScript

npm i @nfdi4plants/arctrl

Python

pip install arctrl

Docs

Documentation can be found here

Development

Requirements

  • nodejs and npm
    • verify with node --version (Tested with v18.16.1)
    • verify with npm --version (Tested with v9.2.0)
  • .NET SDK
    • verify with dotnet --version (Tested with 7.0.306)
  • Python
    • verify with py --version (Tested with 3.12.2, known to work only for >=3.11)

Local Setup

On windows you can use the setup.cmd to run the following steps automatically!

  1. Setup dotnet tools

    dotnet tool restore

  2. Install NPM dependencies

    npm install

  3. Setup python environment

    py -m venv .venv

  4. Install uv and dependencies

    1. .\.venv\Scripts\python.exe -m pip install -U pip setuptools
    2. .\.venv\Scripts\python.exe -m pip install uv
    3. .\.venv\Scripts\python.exe -m uv pip install -r pyproject.toml --group dev

Verify correct setup with ./build.cmd runtests

Branding

Feel free to reference ARCtrl on slides or elsewhere using our logos:

Square Horizontal Vertical
square horizontal vertical

Performance

Measured on 13th Gen Intel(R) Core(TM) i7-13800H

Name Description FSharp Time (ms) JavaScript Time (ms) Python Time (ms)
Table_GetHashCode From a table with 1 column and 10000 rows, retrieve the Hash Code 2 ± 0 9 ± 7 133 ± 7
Table_AddRows Add 10000 rows to a table with 4 columns. 40 ± 9 20 ± 8 309 ± 26
Table_fillMissingCells For a table 6 columns and 20000 rows, where each row has one missing value, fill those values with default values. 55 ± 31 101 ± 11 3375 ± 221
Table_ToJson Serialize a table with 5 columns and 10000 rows to json. 1027 ± 200 293 ± 56 17990 ± 1482
Table_ToCompressedJson Serialize a table with 5 columns and 10000 rows to compressed json. 216 ± 19 4552 ± 326 6188 ± 839
Assay_toJson Parse an assay with one table with 10000 rows and 6 columns to json 856 ± 42 271 ± 55 19278 ± 1289
Study_FromWorkbook Parse a workbook with one study with 10000 rows and 6 columns to an ArcStudy 84 ± 29 96 ± 12 1787 ± 1410
Investigation_ToWorkbook_ManyStudies Parse an investigation with 1500 studies to a workbook 387 ± 71 442 ± 61 6305 ± 660

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

arctrl-3.0.0a4.tar.gz (520.8 kB view details)

Uploaded Source

Built Distribution

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

arctrl-3.0.0a4-py3-none-any.whl (778.4 kB view details)

Uploaded Python 3

File details

Details for the file arctrl-3.0.0a4.tar.gz.

File metadata

  • Download URL: arctrl-3.0.0a4.tar.gz
  • Upload date:
  • Size: 520.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.2

File hashes

Hashes for arctrl-3.0.0a4.tar.gz
Algorithm Hash digest
SHA256 7b5ac0c17cae61e52fda97c74252f321380cb3e451954dbe96c0b9e303e70fd2
MD5 2994cd789b5c7ea7d2e067440f3858f0
BLAKE2b-256 c03cff6c0f399576f71a2f3c1dc83c4427597b8330594deb01b1b8600e86e586

See more details on using hashes here.

File details

Details for the file arctrl-3.0.0a4-py3-none-any.whl.

File metadata

  • Download URL: arctrl-3.0.0a4-py3-none-any.whl
  • Upload date:
  • Size: 778.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.2

File hashes

Hashes for arctrl-3.0.0a4-py3-none-any.whl
Algorithm Hash digest
SHA256 fcab4c534beb5e087bb2701e2fd39feb7d88057cf3fab6917eae89c2e84c3cff
MD5 48e03e393fd237e376d421607760073c
BLAKE2b-256 9cdf2bf4607834ec201862877f36ba73e66bbcdbc4e9ac8ae82a55d854dfd9ea

See more details on using hashes here.

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