https://github.com/chaoss/grimoirelab-cereslib
This project aims at unifying, eventizing and enriching information from the Perceval tool
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.9%) to scientific vocabulary
Keywords from Contributors
Repository
This project aims at unifying, eventizing and enriching information from the Perceval tool
Basic Info
- Host: GitHub
- Owner: chaoss
- License: lgpl-3.0
- Language: Python
- Default Branch: main
- Size: 463 KB
Statistics
- Stars: 11
- Watchers: 11
- Forks: 64
- Open Issues: 4
- Releases: 0
Metadata Files
README.md
Ceres

Ceres is a library that aims at dealing with data in general, and software development data in particular.
The initial goal of Ceres is to parse information in several ways from the Perceval tool in the GrimoireLab project.
However, the more code is added to this project, the more generic methods are found to be useful in other areas of analysis.
The following are the areas of analysis that Ceres can help at:
Eventize
The 'eventizer' helps to split information coming from Perceval. In short, Perceval produces JSON documents and those can be consumed by Ceres and by the 'eventizing' side of the library.
By 'eventizing', this means the process to parse a full Perceval JSON document and produce a Pandas DataFrame with certain amount of information.
As an example, a commit contains information about the commit itself, and the files that were 'touched' at some point. Depending on the granularity of the analysis Ceres will work in the following way:
- Granularity = 1: This is the first level and produces 1 to 1 relationship with the main items in the original data source. For example 1 commit would be just 1 row in the resultant dataframe. This would be a similar case for a code review process in Gerrit or in Bugzilla for tickets.
- Granularity = 2: This is the second level and depends on the data source how in depth this goes. In the specific case of commits, this would return n rows in the dataframe. And there will be as many rows as files where 'touched' in the original data source.
Format
The format part of the library contains some utils that are useful for some basic formatting actions such as having a whole column in the Pandas dataframe with the same string format.
Another example would be the use of the format utils to cast from string to date using datetuils and applying the method to a whole column of a given dataframe.
Filter
The filter utility basically removes rows based on certain values in certain cells of a dataframe.
Data Enrich
This is the utility most context-related together with the eventizing actions. This will add or modify one or more columns in several ways.
There are several examples such as taking care of the surrogates enabling UTF8, adding new columns based on some actions on others, adding the gender of the name provided in another column, and others.
How can you help here?
This project is still quite new, and the development is really slow, so any extra hand would be really awesome, even giving directions, pieces of advice or feature requests :).
And of course, using the software would be great!
Where to start?
The examples folder contains some of the clients I've used for some analysis such as the gender analysis or to produce dataframes that help to understand the areas of the code where developers are working.
Those are probably a good place to have a look at.
Requirements
- Python >= 3.10
You will also need some other libraries for running the tool, you can find the whole list of dependencies in pyproject.toml file.
Installation
There are several ways to install Cereslib on your system: packages or source code using Poetry or pip.
PyPI
Cereslib can be installed using pip, a tool for installing Python packages.
To do it, run the next command:
$ pip install cereslib
Source code
To install from the source code you will need to clone the repository first:
$ git clone https://github.com/chaoss/grimoirelab-cereslib
$ cd grimoirelab-cereslib
Then use pip or Poetry to install the package along with its dependencies.
Pip
To install the package from local directory run the following command:
$ pip install .
In case you are a developer, you should install cereslib in editable mode:
$ pip install -e .
Poetry
We use poetry for dependency management and
packaging. You can install it following its documentation.
Once you have installed it, you can install cereslib and the dependencies in
a project isolated environment using:
$ poetry install
To spaw a new shell within the virtual environment use:
$ poetry shell
License
Licensed under GNU General Public License (GPL), version 3 or later.
Owner
- Name: CHAOSS
- Login: chaoss
- Kind: organization
- Website: https://chaoss.community/
- Twitter: chaossproj
- Repositories: 64
- Profile: https://github.com/chaoss
GitHub Events
Total
- Release event: 14
- Watch event: 1
- Delete event: 2
- Push event: 21
- Pull request event: 5
- Pull request review event: 2
- Fork event: 1
- Create event: 20
Last Year
- Release event: 14
- Watch event: 1
- Delete event: 2
- Push event: 21
- Pull request event: 5
- Pull request review event: 2
- Fork event: 1
- Create event: 20
Committers
Last synced: about 1 year ago
Top Committers
| Name | Commits | |
|---|---|---|
| Santiago Dueñas | s****s@b****m | 109 |
| Jose Javier Merchante | j****e@b****m | 58 |
| Daniel Izquierdo | d****o@b****m | 58 |
| Valerio Cosentino | v****s@b****m | 25 |
| alpgarcia | a****a@b****m | 11 |
| Jesus M. Gonzalez-Barahona | j****b@g****s | 5 |
| alpgarcia | a****a@g****m | 3 |
| Venu Vardhan Reddy Tekula | v****u@b****m | 2 |
| Quan Zhou | q****n@b****m | 2 |
| Alvaro del Castillo | a****s@b****m | 2 |
| dependabot[bot] | 4****] | 1 |
| Nitish Gupta | i****g@g****m | 1 |
| Luis Cañas-Díaz | l****s@b****m | 1 |
| Kshitij Gupta | 3****9 | 1 |
| Eva Millán | e****n@b****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 11 months ago
All Time
- Total issues: 6
- Total pull requests: 62
- Average time to close issues: 6 months
- Average time to close pull requests: 11 days
- Total issue authors: 5
- Total pull request authors: 14
- Average comments per issue: 1.5
- Average comments per pull request: 0.56
- Merged pull requests: 54
- Bot issues: 0
- Bot pull requests: 3
Past Year
- Issues: 0
- Pull requests: 6
- Average time to close issues: N/A
- Average time to close pull requests: about 10 hours
- Issue authors: 0
- Pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 5
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- canasdiaz (2)
- imnitishng (1)
- GeorgLink (1)
- mschoenlaub (1)
- acs (1)
Pull Request Authors
- jjmerchante (25)
- alpgarcia (10)
- valeriocos (8)
- jgbarah (5)
- sduenas (4)
- dependabot[bot] (3)
- stevenkolawole (2)
- dicortazar (2)
- vchrombie (2)
- imnitishng (1)
- evamillan (1)
- kshitij3199 (1)
- canasdiaz (1)
- zhquan (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 2,066 last-month
- Total docker downloads: 69
- Total dependent packages: 3
- Total dependent repositories: 18
- Total versions: 87
- Total maintainers: 2
pypi.org: cereslib
GrimoireLab: Unify, eventize and enrich information from Perceval
- Homepage: https://chaoss.github.io/grimoirelab/
- Documentation: https://cereslib.readthedocs.io/
- License: GPL-3.0+
-
Latest release: 1.0.17
published 11 months ago
Rankings
Dependencies
- coverage 6.4.1 develop
- flake8 4.0.1 develop
- importlib-metadata 4.2.0 develop
- mccabe 0.6.1 develop
- pycodestyle 2.8.0 develop
- pyflakes 2.4.0 develop
- typing-extensions 4.2.0 develop
- zipp 3.8.0 develop
- grimoirelab-toolkit 0.3.0
- numpy 1.18.3
- pandas 0.25.3
- python-dateutil 2.8.2
- pytz 2022.1
- scipy 1.6.1
- six 1.16.0
- coverage ^6.2 develop
- flake8 ^4.0.1 develop
- grimoirelab-toolkit >=0.3
- numpy <=1.18.3
- pandas >=0.22.0,<=0.25.3
- python ^3.7
- scipy ^1.5
- six ^1.16.0
- bitergia/release-tools-check-changelog master composite
- actions/checkout 93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 composite
- actions/download-artifact fb598a63ae348fa914e94cd0ff38f362e927b741 composite
- actions/setup-python 13ae5bb136fac2878aff31522b9efb785519f984 composite
- chaoss/grimoirelab-github-actions/build master composite
- chaoss/grimoirelab-github-actions/publish master composite
- chaoss/grimoirelab-github-actions/release master composite
- actions/checkout 93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 composite
- actions/setup-python 13ae5bb136fac2878aff31522b9efb785519f984 composite