Lightweight library for accessing data and configuration

Related tags

Miscellaneousaccsr
Overview

accsr

This lightweight library contains utilities for managing, loading, uploading, opening and generally wrangling data and configurations. It was battle tested in multiple projects at appliedAI.

Please open new issues for bugs, feature requests and extensions. See more details about the structure and workflow in the developer's readme.

Overview

Source code documentation and usage examples are here. We also provide notebooks with examples in TODO.

Installation

Install the latest release with

pip install accsr

To live on the edge, install the latest develop version with

pip install --pre accsr
Comments
  • Dryrun-based pull/push and tqdm

    Dryrun-based pull/push and tqdm

    Added tqdm progress bar to RemoteStorage.push/pull methods

    • First determines the total number of bytes to push/pull
    • Updates the number of transferred bytes after every file

    resolve #4 #5 #9

    opened by fariedabuzaid 4
  • Fix test failure because of failed name resolution

    Fix test failure because of failed name resolution

    This PR fixes the test failure related to failed name resolution on CI. It makes the tests run inside a container because this is apparently needed to enable host name resolution for the minio service from within the tests.

    You can refer to these links for more information:

    • https://docs.github.com/en/actions/using-containerized-services/about-service-containers#mapping-docker-host-and-service-container-ports
    • https://docs.github.com/en/actions/using-containerized-services/creating-redis-service-containers#running-jobs-in-containers
    opened by AnesBenmerzoug 2
  • Add Simulation Mode

    Add Simulation Mode

    Add a new flag to the RemoteStorage push/pull operation. If True the function should determine and return the operations that need to be conducted without actually performing them.

    enhancement 
    opened by fariedabuzaid 0
  • Transactional safety for push and pull in remote storage

    Transactional safety for push and pull in remote storage

    Currently, pushing and pulling of directories does not check whether the entire operation can be performed successfully (e.g. if modified files already exist and overwrite_existing=False). This leads to a partial execution before an error is thrown and thus to an unpredictable state.

    We should check if the entire operation can be performed before pushing/pulling anything.

    Also, to be more familiar to git users, overwrite_existing should be renamed to force. This is a breaking change, the minor version should be bumped

    enhancement 
    opened by MischaPanch 0
  • chore: release version 0.3.5-dev0

    chore: release version 0.3.5-dev0

    @MischaPanch can you release the current dev branch? I found a bug in the old version which seems to fixed now. Would be great to get the fix installed. Not urgent though, I can work with the dev branch for now :)

    opened by slettner 0
  • Improve docs by extending notebooks

    Improve docs by extending notebooks

    We have essentially no documentation on how to use accsr. The interplay of storage and config modules should be demonstrated in notebooks. See tests/conftest.py for an example how a storage service is instantiated during local testing an in CI.

    documentation 
    opened by MischaPanch 0
  • Move convenient path selections in push/pull

    Move convenient path selections in push/pull

    We should make it easier to push/pull a bunch of paths based on patterns. For that we should add

    • [ ] Permit passing glob-patterns to push/pull
    • [ ] Add the possibility to pass a regex as except_matches kwarg to permit simple exclusion of files. The current regex kwarg should be renamed to if_matches.

    This would permit things like

    storage.push("data/**/*.jpg", except_matches=r".*test.*") 
    

    We could additionally allow passing a except_condition: Callable[[str]], bool] = None (or do you think if_condition is more natural?), in which case the above can be rewritten

    storage.push("data/**/*.jpg", except_condition=lambda n: "test" in n) 
    

    The condition could be even made more general, mapping the metadata-object to a bool (thereby e.g. allowing filtering by size), at the cost of a more complicated interface for callables. @fariedabuzaid @AnesBenmerzoug what do you think?

    enhancement 
    opened by MischaPanch 0
  • CI: make caching work within containers

    CI: make caching work within containers

    @MischaPanch This fixes the tests but it currently break caching.

    WARNING: The directory '/github/home/.cache/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you should use sudo's -H flag.
    

    I think running jobs inside containers is the way to go and we should invest some time to make caching work with it.

    Originally posted by @AnesBenmerzoug in https://github.com/appliedAI-Initiative/accsr/issues/1#issuecomment-976536009

    Build/CI 
    opened by MischaPanch 0
Releases(v0.3.4)
Owner
appliedAI Initiative
The appliedAI Initiative aims to lift Germany and Europe to the AI age by accelerating the adoption of AI technology
appliedAI Initiative
A simple desktop application to scan and export Genshin Impact Artifacts.

「天目」 -- Amenoma 简体中文 | English 「天目流的诀窍就是滴水穿石的耐心和全力以赴的意志」 扫描背包中的圣遗物,并导出至 json 格式。之后可导入圣遗物分析工具( 莫娜占卜铺 、 MingyuLab 、 Genshin Optimizer 进行计算与规划等。 已支持 原神2.

夏至 475 Dec 30, 2022
Open-source library for analyzing the results produced by ABINIT

Package Continuous Integration Documentation About AbiPy is a python library to analyze the results produced by Abinit, an open-source program for the

ABINIT 91 Dec 09, 2022
berisi kodingan kodingan python umum yang kubuat.

python-codevault berisi kodingan kodingan python umum yang kubuat. untuk memudahkan transisi dan menjadi refrensi tutorial. daily challange for myself

Agung Zon Blade 1 Dec 19, 2021
This is a library for simulate probability theory problems specialy conditional probability

This is a library for simulate probability theory problems specialy conditional probability. It is also useful to create custom single or joint distribution with specific PMF or PDF to get probabilit

Mohamadreza Kariminejad 6 Mar 30, 2022
GibMacOS - Py2/py3 script that can download macOS components direct from Apple

Py2/py3 script that can download macOS components direct from Apple Can also now build Internet Recovery USB installers from Windows using dd and 7zip

CorpNewt 4.8k Jan 02, 2023
An almost fully customizable language made in python!

Whython is a project language, the idea of it is that anyone can download and edit the language to make it suitable to what they want.

Julian 47 Nov 05, 2022
Create VSCode Extensions with python

About Create vscode extensions with python. Installation Stable version: pip install vscode-ext Why use this? Why should you use this for building VSc

Swas.py 134 Jan 07, 2023
An extension module to make reaction based menus with disnake

disnake-ext-menus An experimental extension menu that makes working with reaction menus a bit easier. Installing python -m pip install -U disnake-ext-

1 Nov 25, 2021
This is the accompanying repository for the Bloomberg Global Coal Countdown website.

This is the accompanying repository for the Bloomberg Global Coal Countdown (BGCC) website. Data Sources Dashboard Data Schema and Validation License

7 Jun 01, 2022
Design-by-contract in Python3 with informative violation messages and inheritance

icontract icontract provides design-by-contract to Python3 with informative violation messages and inheritance. It also gives a base for a flourishing

275 Jan 02, 2023
A tool to help plan vacations with friends and family

Vacationer In Development A tool to help plan vacations with friends and family Deployment Requirements: NPM Docker Docker-Compose Deployment Instruct

JK 2 Oct 05, 2021
Free components that wrap up Python into Delphi and Lazarus (FPC)

Python for Delphi (P4D) is a set of free components that wrap up the Python DLL into Delphi and Lazarus (FPC). They let you easily execute Python scri

747 Jan 02, 2023
A Way to Use Python, Easier.

PyTools A Way to Use Python, Easier. How to Install Just copy this code, then make a new file in your project directory called PyTools.py, then paste

Kamran 2 Aug 15, 2022
Simple rofi script to choose player for playerctl to execute its command

rofi-playerctl-switcher simple rofi script to choose player for playerctl to execute its command Usage copy playerSwitch.py and playerctl.sh to ~/.con

2 Jan 03, 2022
A reproduction repo for a Scheduling bug in AirFlow 2.2.3

A reproduction repo for a Scheduling bug in AirFlow 2.2.3

Ilya Strelnikov 1 Feb 09, 2022
Developer guide for Hivecoin project

Hivecoin-developer Developer guide for Hivecoin project. Install Content are writen in reStructuredText (RST) and rendered with Sphinx. Much of the co

tweetyf 1 Nov 22, 2021
The functions we created are included in a script. The necessary parts for pre-processing were taken. Analysis complete.

Feature-Engineering The functions we created are included in a script. The necessary parts for pre-processing were taken. Analysis complete. Business

Ayşe Nur Türkaslan 4 Oct 17, 2021
Automated, progress quest-inspired procedural adventuring

Tales of an Endless Journey (TEJ) Automated, progress quest-inspired procedural adventuring What is this project? Journey is the result of many, many

8 Dec 14, 2021
Acesse seus investimentos da NuInvest pelo Python (Experimental)

Acesse seus investimentos da NuInvest pelo Python (Experimental)

André Roggeri Campos 5 Dec 06, 2022
Architecture example simulator

SCADA architecture Example of a SCADA-like console application, used to serve as a minimal example of a standard architecture of an IIoT system. Insta

1 Nov 06, 2021