E3 core. Tools and library for building and testing software
Project description
The `e3` Project
================
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/979/badge)](https://bestpractices.coreinfrastructure.org/projects/979)
[![Documentation Status](https://readthedocs.org/projects/e3-core/badge/?version=latest)](http://e3-core.readthedocs.io/en/latest/?badge=latest)
[![codecov](https://codecov.io/gh/AdaCore/e3-core/branch/master/graph/badge.svg)](https://codecov.io/gh/AdaCore/e3-core)
This present project (`e3`) is a Python framework to ease the development
of portable automated build systems (compilation, dependencies management,
binary code packaging, and automated testing).
The `e3` framework is split across multiple Python packages named `e3-<name>`
and sharing the same namespace: `e3`.
Code status
===========
Platform | Status
---------|-------
Linux | [![Build Status](https://travis-ci.org/AdaCore/e3-core.svg?branch=master)](https://travis-ci.org/AdaCore/e3-core)
Windows | [![Build status](https://ci.appveyor.com/api/projects/status/c8lgr7t0pmg1q89f/branch/master?svg=true)](https://ci.appveyor.com/project/github-integration-adacore/e3-core/branch/master)
`e3-core` content
=================
`e3-core` package is organized in several packages and modules:
- *anod*: build system handling dependencies management and binary code
packaging. This includes a driver that can parse `.anod` specification
files.
- *archive*: support for reading and writing tar and zip archives
- *collection*: generic collections, e.g. an implementation of Direct Acyclic
Graphs
- *decorator*: Python decorators, e.g. a memoize decorator
- *diff*: functions to compute a diff or apply it
- *electrolyt*: support for parsing build plans
- *env*: global environment handling
- *error*: `e3` exceptions
- *event*: interface for notifying external services
- *fs*: high-level file system operations, using globbing, walk,...
- *hash*: computation of sha1, md5
- *log*: logging helpers
- *main*: main program initialization, command line parsing,...
- *mainloop*: generic loop for running jobs
- *net*: network utilities
- *net.http*: helper for sending http requests and downloading files
- *net.smtp*: helper for sending emails through smtp
- *os*: platform independent interface to Operating System functions
- *os.fs*: low-level file system operations, no logging involved
- *os.platform*: tools to detect the platform
- *os.process*: interface to run process, to control the execution time,...
- *os.timezone*: platform independent interface to get the machine timezone
- *platform*: generic interface for providing platform information
- *platform_db*: knowledge base for computing platform information
- *store*: interface to download and store resources in a store
- *sys*: `e3` information, sanity check, ...
- *text*: text formatting and transformation
- *vcs*: high level interface to VCS repositories
- *yaml*: helpers for parsing yaml data
See [e3-core documentation](http://e3-core.readthedocs.io/en/latest/) for
more details.
Install
=======
requires: Python 2.7.x (experimental support of Python >=3.4)
To install `e3`, run:
```bash
python setup.py install
```
All `e3` dependencies will also be installed.
Contributing
============
See [CONTRIBUTING.md](CONTRIBUTING.md).
================
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/979/badge)](https://bestpractices.coreinfrastructure.org/projects/979)
[![Documentation Status](https://readthedocs.org/projects/e3-core/badge/?version=latest)](http://e3-core.readthedocs.io/en/latest/?badge=latest)
[![codecov](https://codecov.io/gh/AdaCore/e3-core/branch/master/graph/badge.svg)](https://codecov.io/gh/AdaCore/e3-core)
This present project (`e3`) is a Python framework to ease the development
of portable automated build systems (compilation, dependencies management,
binary code packaging, and automated testing).
The `e3` framework is split across multiple Python packages named `e3-<name>`
and sharing the same namespace: `e3`.
Code status
===========
Platform | Status
---------|-------
Linux | [![Build Status](https://travis-ci.org/AdaCore/e3-core.svg?branch=master)](https://travis-ci.org/AdaCore/e3-core)
Windows | [![Build status](https://ci.appveyor.com/api/projects/status/c8lgr7t0pmg1q89f/branch/master?svg=true)](https://ci.appveyor.com/project/github-integration-adacore/e3-core/branch/master)
`e3-core` content
=================
`e3-core` package is organized in several packages and modules:
- *anod*: build system handling dependencies management and binary code
packaging. This includes a driver that can parse `.anod` specification
files.
- *archive*: support for reading and writing tar and zip archives
- *collection*: generic collections, e.g. an implementation of Direct Acyclic
Graphs
- *decorator*: Python decorators, e.g. a memoize decorator
- *diff*: functions to compute a diff or apply it
- *electrolyt*: support for parsing build plans
- *env*: global environment handling
- *error*: `e3` exceptions
- *event*: interface for notifying external services
- *fs*: high-level file system operations, using globbing, walk,...
- *hash*: computation of sha1, md5
- *log*: logging helpers
- *main*: main program initialization, command line parsing,...
- *mainloop*: generic loop for running jobs
- *net*: network utilities
- *net.http*: helper for sending http requests and downloading files
- *net.smtp*: helper for sending emails through smtp
- *os*: platform independent interface to Operating System functions
- *os.fs*: low-level file system operations, no logging involved
- *os.platform*: tools to detect the platform
- *os.process*: interface to run process, to control the execution time,...
- *os.timezone*: platform independent interface to get the machine timezone
- *platform*: generic interface for providing platform information
- *platform_db*: knowledge base for computing platform information
- *store*: interface to download and store resources in a store
- *sys*: `e3` information, sanity check, ...
- *text*: text formatting and transformation
- *vcs*: high level interface to VCS repositories
- *yaml*: helpers for parsing yaml data
See [e3-core documentation](http://e3-core.readthedocs.io/en/latest/) for
more details.
Install
=======
requires: Python 2.7.x (experimental support of Python >=3.4)
To install `e3`, run:
```bash
python setup.py install
```
All `e3` dependencies will also be installed.
Contributing
============
See [CONTRIBUTING.md](CONTRIBUTING.md).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
e3-core-20.8.20180301.tar.gz
(286.1 kB
view details)
Built Distributions
File details
Details for the file e3-core-20.8.20180301.tar.gz
.
File metadata
- Download URL: e3-core-20.8.20180301.tar.gz
- Upload date:
- Size: 286.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 520ff17e97f8e3b06e38a54a66ea14e59b0daf4c3bbd30a49eedb15fdd8faa9b |
|
MD5 | 532c7c17ef635d6a11ab554915d037ad |
|
BLAKE2b-256 | fde78ac6177e880d81ab25e0d3fda31b811f78a8ad8e47b6aefa9b450445dac4 |
File details
Details for the file e3_core-20.8.20180301-py3-none-any.whl
.
File metadata
- Download URL: e3_core-20.8.20180301-py3-none-any.whl
- Upload date:
- Size: 314.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ff24617ff52eae962d7355d169322c50c6de88e1dacafee9c35d3054f147d83 |
|
MD5 | 34d68e6f492a79a94105f575287835e3 |
|
BLAKE2b-256 | 856159ca63e4210ba6c7265960ce024b750af167fe664011061ae0b2ac637ada |
File details
Details for the file e3_core-20.8.20180301-py2-none-any.whl
.
File metadata
- Download URL: e3_core-20.8.20180301-py2-none-any.whl
- Upload date:
- Size: 314.7 kB
- Tags: Python 2
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f7316391532034efe88377b1abf67c49af1c5cb5d22aa96aa53139a15ee82571 |
|
MD5 | 99c08763656976becee3080210ee8622 |
|
BLAKE2b-256 | 1a4f501ea09fad9c214db29a1d78e5c8f74032d93e396da7d6f61841c8dc45ea |