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 5 21 226
Table_AddRows Add 10000 rows to a table with 4 columns. 15 22 289
Table_fillMissingCells For a table 6 columns and 20000 rows, where each row has one missing value, fill those values with default values. 49 108 4813
Table_ToJson Serialize a table with 5 columns and 10000 rows to json. 1099 481 6833
Table_ToCompressedJson Serialize a table with 5 columns and 10000 rows to compressed json. 261 2266 717334
Assay_toJson Parse an assay with one table with 10000 rows and 6 columns to json 915 2459 28799
Study_FromWorkbook Parse a workbook with one study with 10000 rows and 6 columns to an ArcStudy 97 87 1249
Investigation_ToWorkbook_ManyStudies Parse an investigation with 1500 studies to a workbook 621 379 9974

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.0a3.tar.gz (520.1 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.0a3-py3-none-any.whl (777.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: arctrl-3.0.0a3.tar.gz
  • Upload date:
  • Size: 520.1 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.0a3.tar.gz
Algorithm Hash digest
SHA256 22f559fa48538de9980bed02ec481c1e44bfa47d8a7447e7fae88eb3055ad97c
MD5 e87b97533c9c6ae47d2f2235a54f1939
BLAKE2b-256 ef43a30efd37b4c0c172483bbee884b1f996e3d5b3f0c4a68a1cc80c17a68916

See more details on using hashes here.

File details

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

File metadata

  • Download URL: arctrl-3.0.0a3-py3-none-any.whl
  • Upload date:
  • Size: 777.8 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.0a3-py3-none-any.whl
Algorithm Hash digest
SHA256 69fa98b2b2bf86f450c17244140d60efe484cf2b6dc2c21c93fc4984f0753bb7
MD5 2d0d028986a8407e77f53b5545ed5100
BLAKE2b-256 d99505384769cd29a10ca28d1c7ac722243076fe4a917f38bee051ba9598a963

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