Skip to main content

A collection of common data structures and utilities used in other ICHEC tools

Project description

iccore

This package is part of the Common Tooling Project at the Irish Centre for High End Computing toward creating a set of common tools and processes for our activities.

The package is a foundational collection of common data structures, data types and low-level utilities used in other ICHEC 'common tools'.

Install

It is available on PyPI:

pip install iccore

Features

The package consists of:

  • data structures (list, strings, dicts etc.) and utilities for working with them
  • tooling for interacting with system resources, such as external processes, the filesystem and network.
  • basic data types for describing people, organizations, projects and code repositories - to support process automation and Open Science and FAIR activites.

Design Goals

The ICHEC Common Tools (ictools) favour low dependencies and the use of low-level APIs over feature richness and 'quick wins'. The reasons for this are:

  • transparency: given our focus on high performance computing we often want to know what is happening in a system at a low/detailed level. Abstraction layers and read-out modification by other libraries can hide outputs.
  • control: It is useful to have access to tooling that we can quickly modify ourselves for our needs.
  • training: It is useful for us to gain an understanding of how software interacts with system resources at a low level to support our users. Working with and understanding these tools can help with this.

Example Uses

A basic CLI is included, mostly for testing, but it may be useful for getting ideas on what features the package can be used to support.

System Resources

Filesystem

You can replace all occurences of a string with another recursively in files with:

iccore filesystem replace_in_files --target $REPLACE_DIR --search $FILE_WITH_SEARCH_TERM --replace $FILE_WITH_REPLACE_TERM 

The search and replace terms are, perhaps unusually, read from files. This can be handy to avoid shell escape sequences - as might be used in sed.

Networking

You can download a file with:

iccore network download --url $RESOURCE_URL --download_dir $WHERE_TO_PUT_DOWNLOAD

Process Automation Data Types

Project Management

You can get Gitlab Milestones given a project id and access token with:

iccore gitlab --token $GITLAB_TOKEN milestone $PROJECT_ID

You can get the version number of the most recent project release with:

iccore gitlab --token $GITLAB_TOKEN latest_release $PROJECT_ID

You can get info about a git repo with:

iccore git info 

run in the repo.

License

This project is licensed under the GPLv3+. See the incluced LICENSE.txt file for details.

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

iccore-0.1.6.tar.gz (33.1 kB view details)

Uploaded Source

Built Distribution

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

iccore-0.1.6-py3-none-any.whl (35.8 kB view details)

Uploaded Python 3

File details

Details for the file iccore-0.1.6.tar.gz.

File metadata

  • Download URL: iccore-0.1.6.tar.gz
  • Upload date:
  • Size: 33.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.13.0

File hashes

Hashes for iccore-0.1.6.tar.gz
Algorithm Hash digest
SHA256 be8035f1afc8ffdfe55e9feda7d20c495ff058ec36255277c2e43282f883a31d
MD5 80dc5e0d874e706e7ed2a54c4d363673
BLAKE2b-256 7d51290ad109aa06ba5c9f735e3a6de54a9af283885a3d5e38f9d5b4e34f39e5

See more details on using hashes here.

File details

Details for the file iccore-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: iccore-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 35.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.13.0

File hashes

Hashes for iccore-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 c286e4e9bbf7d5d10b59a8e350ef0989285e887e0f80eea3a29d0fd05e231410
MD5 6dfd59870a5d3e09bc7f0d4ea47c9879
BLAKE2b-256 0b6a23f5a3fdfcc2243eb6945f7b05f21346939847b744ece948cbeac987e3a9

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