8000 GitHub - nfdi4plants/ARCtrl: Polyglot (.NET/JS/Python) library for management of Annotated Research Contexts (ARCs) using an in-memory representation and runtime-agnostic contract systems.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Polyglot (.NET/JS/Python) library for management of Annotated Research Contexts (ARCs) using an in-memory representation and runtime-agnostic contract systems.

License

Notifications You must be signed in to change notification settings

nfdi4plants/ARCtrl

Folders and files

< 8000 td class="react-directory-row-commit-cell">
 
NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Polyglot (.NET/JS/Python) library for management of Annotated Research Contexts (ARCs) using an in-memory representation and runtime-agnostic contract systems.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 12

0