pax_global_header 0000666 0000000 0000000 00000000064 14451601534 0014515 g ustar 00root root 0000000 0000000 52 comment=d4fe3604c4e1a27f44ed8c482a8188057dda15ee
pyrgg-1.4/ 0000775 0000000 0000000 00000000000 14451601534 0012511 5 ustar 00root root 0000000 0000000 pyrgg-1.4/.coveragerc 0000664 0000000 0000000 00000000253 14451601534 0014632 0 ustar 00root root 0000000 0000000 [run]
branch = True
omit =
*/pyrgg/__main__.py
*/pyrgg/__init__.py
[report]
# Regexes for lines to exclude from consideration
exclude_lines =
pragma: no cover
pyrgg-1.4/.github/ 0000775 0000000 0000000 00000000000 14451601534 0014051 5 ustar 00root root 0000000 0000000 pyrgg-1.4/.github/CODE_OF_CONDUCT.md 0000664 0000000 0000000 00000006421 14451601534 0016653 0 ustar 00root root 0000000 0000000 # Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at info@pyrgg.ir. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq
pyrgg-1.4/.github/CONTRIBUTING.md 0000664 0000000 0000000 00000001310 14451601534 0016275 0 ustar 00root root 0000000 0000000 # Contribution
Changes and improvements are more than welcome! ❤️ Feel free to fork and open a pull request.
Please consider the following :
1. Fork it!
2. Create your feature branch (under `dev` branch)
3. Add your functions/methods to proper files
4. Add standard `docstring` to your functions/methods
5. Add tests for your functions/methods (`doctest` testcases in `test` folder)
6. Pass all CI tests
7. Update `References` section in `README.md` (`MLA` format)
8. Update `CHANGELOG.md`
- Describe changes under `[Unreleased]` section
9. Update `AUTHORS.md`
- Add your name under `# Other Contributors #` section
10. Submit a pull request into `dev` (please complete the pull request template) pyrgg-1.4/.github/FUNDING.yml 0000664 0000000 0000000 00000000050 14451601534 0015661 0 ustar 00root root 0000000 0000000 custom: https://www.pyrgg.ir/donate.html pyrgg-1.4/.github/ISSUE_TEMPLATE.md 0000664 0000000 0000000 00000000235 14451601534 0016556 0 ustar 00root root 0000000 0000000 #### Description
#### Steps/Code to Reproduce
#### Expected Behavior
#### Actual Behavior
#### Operating System
#### Python Version
#### Pyrgg Version
pyrgg-1.4/.github/PULL_REQUEST_TEMPLATE.md 0000664 0000000 0000000 00000000160 14451601534 0017647 0 ustar 00root root 0000000 0000000 #### Reference Issues/PRs
#### What does this implement/fix? Explain your changes.
#### Any other comments?
pyrgg-1.4/.github/dependabot.yml 0000664 0000000 0000000 00000000245 14451601534 0016702 0 ustar 00root root 0000000 0000000 version: 2
updates:
- package-ecosystem: pip
directory: "/"
schedule:
interval: weekly
time: "01:30"
open-pull-requests-limit: 10
target-branch: dev
pyrgg-1.4/.github/workflows/ 0000775 0000000 0000000 00000000000 14451601534 0016106 5 ustar 00root root 0000000 0000000 pyrgg-1.4/.github/workflows/publish_conda.yaml 0000664 0000000 0000000 00000000672 14451601534 0021611 0 ustar 00root root 0000000 0000000 name: publish_conda
on:
push:
# Sequence of patterns matched against refs/tags
tags:
- '*' # Push events to matching v*, i.e. v1.0, v20.15.10
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: publish-to-conda
uses: sepandhaghighi/conda-package-publish-action@v1.2
with:
subDir: 'otherfile'
AnacondaToken: ${{ secrets.ANACONDA_TOKEN }}
pyrgg-1.4/.github/workflows/publish_pypi.yml 0000664 0000000 0000000 00000001755 14451601534 0021350 0 ustar 00root root 0000000 0000000 # This workflow will upload a Python Package using Twine when a release is created
# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries
name: Upload Python Package
on:
push:
# Sequence of patterns matched against refs/tags
tags:
- '*' # Push events to matching v*, i.e. v1.0, v20.15.10
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
with:
python-version: '3.x'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel twine
- name: Build and publish
env:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: |
python setup.py sdist bdist_wheel
twine upload dist/*.tar.gz
twine upload dist/*.whl
pyrgg-1.4/.github/workflows/test.yml 0000664 0000000 0000000 00000003713 14451601534 0017614 0 ustar 00root root 0000000 0000000 # This workflow will install Python dependencies, run tests with a variety of Python versions
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
name: CI
on: [push, pull_request]
env:
TEST_PYTHON_VERSION: 3.9
TEST_OS: 'ubuntu-20.04'
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04, windows-2022, macOS-12]
python-version: [3.5, 3.6, 3.7.9, 3.8, 3.9, 3.10.0, 3.11.0]
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Installation
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
python setup.py install
- name: First test
run: |
pyrgg test
pyrgg --version
- name: Test requirements Installation
run: |
python otherfile/requirements-splitter.py
pip install --upgrade --upgrade-strategy=only-if-needed -r test-requirements.txt
- name: Test with pytest
run: |
python -m pytest test --cov=pyrgg --cov-report=term
- name: Version check
run: |
python otherfile/version_check.py
if: matrix.python-version == env.TEST_PYTHON_VERSION
- name: Other tests
run: |
python -m vulture pyrgg/ otherfile/ setup.py --min-confidence 65 --exclude=__init__.py --sort-by-size
python -m bandit -r pyrgg -s B311,B403
python -m pydocstyle -v --match-dir=pyrgg
if: matrix.python-version == env.TEST_PYTHON_VERSION
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
fail_ci_if_error: false
if: matrix.python-version == env.TEST_PYTHON_VERSION && matrix.os == env.TEST_OS
- name: cProfile
run: |
python -m cProfile -s cumtime otherfile/pyrgg_profile.py
pyrgg-1.4/.gitignore 0000664 0000000 0000000 00000002410 14451601534 0014476 0 ustar 00root root 0000000 0000000 # Created by .ignore support plugin (hsz.mobi)
### Python template
# Byte-compiled / optimized / DLL files
node_modules/
datasets/
__pycache__/
*.py[cod]
*$py.class
*.gr
*.json
*.csv
*.wel
*.lp
*.p
*.dl
*.tgf
# C extensions
*.so
# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*,cover
.hypothesis/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
target/
# Jupyter Notebook
.ipynb_checkpoints
# pyenv
.python-version
# celery beat schedule file
celerybeat-schedule
# dotenv
.env
# virtualenv
.venv/
venv/
ENV/
# Spyder project settings
.spyderproject
# Rope project settings
.ropeproject
### Example user template template
### Example user template
# IntelliJ project files
.idea
*.iml
out
gen
pyrgg-1.4/AUTHORS.md 0000664 0000000 0000000 00000001052 14451601534 0014156 0 ustar 00root root 0000000 0000000 # Core Developers #
----------
- Sepand Haghighi - Sharif University of Technology - ([@sepandhaghighi](http://github.com/sepandhaghighi)) ([sepand@pyrgg.ir](mailto:sepand@pyrgg.ir))
- Sadra Sabouri - Sharif University of Technology - ([@sadrasabouri](https://github.com/sadrasabouri)) ([sadra@pyrgg.ir](mailto:sadra@pyrgg.ir))
# Other Contributors #
----------
- [ivanovmg](https://github.com/ivanovmg)
- Ahmad Salimi - Sharif University of Technology ([@ahmadsalimi](https://github.com/ahmadsalimi)) ([ahsa9978@gmail.com](mailto:ahsa9978@gmail.com))
pyrgg-1.4/CHANGELOG.md 0000664 0000000 0000000 00000012135 14451601534 0014324 0 ustar 00root root 0000000 0000000 # Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [1.4] - 2023-07-06
### Added
- `check_for_config` function
- `load_config` function
- `save_config` function
### Changed
- `README.md` modified
- Logo changed
- `codecov` removed from `dev-requirements.txt`
- Test system modified
- Error messages updated
## [1.3] - 2022-11-30
### Added
- Graphviz(DOT) format
### Changed
- [asciinema](https://asciinema.org) instruction video updated
- Test system modified
- `README.md` modified
- `Python 3.11` added to `test.yml`
- CLI mode updated
- `dev-requirements.txt` updated
- To-do list moved to `TODO.md`
## [1.2] - 2022-09-07
### Added
- Anaconda workflow
- Discord badge
### Changed
- Menu optimized
- Docstrings modified
- `branch_gen` function modified
- `edge_gen` function modified
- `precision` and `min_edge` parameters added to `branch_gen` function
- `random_edge` parameter removed from `branch_gen` function
- Test system modified
- `AUTHORS.md` updated
- License updated
- `README.md` modified
- `Python 3.10` added to `test.yml`
### Removed
- `sign_gen` function
- `random_edge_limits` function
## [1.1] - 2021-06-09
### Added
- `requirements-splitter.py`
- `is_weighted` function
- `_write_properties_to_json` function
- `PYRGG_TEST_MODE` parameter
### Changed
- Test system modified
- JSON, YAML and Pickle formats value changed from `string` to `number`
- `properties` section added to JSON, YAML and Pickle formats
- `_write_to_json` function renamed to `_write_data_to_json`
- `logger` function modified
- `time_convert` function modified
- `branch_gen` function modified
- References updated
## [1.0] - 2021-01-11
### Added
- Number of files option
### Changed
- All flags type changed to `bool`
- Menu optimized
- The `logger` function enhanced.
- Time format in the `logger` changed to `%Y-%m-%d %H:%M:%S`
- `dl_maker` function modified
- `tgf_maker` function modified
- `gdf_maker` function modified
- `run` function modified
## [0.9] - 2020-10-07
### Added
- GEXF format
- Float weight support
- `tox.ini`
### Changed
- Menu optimized
- `pyrgg.py` renamed to `graph_gen.py`
- Other functions moved to `functions.py`
- Test system modified
- `params.py` refactored
- `graph_gen.py` refactored
- `functions.py` refactored
- `weight_str_to_number` function renamed to `convert_str_to_number`
- `branch_gen` function bugs fixed
- `input_filter` function bug fixed
- `gl_maker` function bug fixed
- `CONTRIBUTING.md` updated
- `AUTHORS.md` updated
### Removed
- `print_test` function
- `left_justify` function
- `justify` function
- `zero_insert` function
## [0.8] - 2020-08-19
### Added
- GDF format
- GML format
### Changed
- CLI snapshots updated
- `AUTHORS.md` updated
## [0.7] - 2020-08-07
### Added
- Graph Line format
### Changed
- Menu optimized
## [0.6] - 2020-07-24
### Added
- Matrix Market format
### Changed
- `json_maker` function optimized
- `dl_maker` function optimized
- `tgf_maker` function optimized
- `lp_maker` function optimized
## [0.5] - 2020-07-01
### Added
- TSV format
- Multigraph control
### Changed
- `branch_gen` function modified
- Website changed to [https://www.pyrgg.ir](https://www.pyrgg.ir)
## [0.4] - 2020-06-17
### Added
- Self loop control
- Github action
### Changed
- `appveyor.yml` updated
## [0.3] - 2019-11-29
### Added
- `__version__` variable
- `CHANGELOG.md`
- `dev-requirements.txt`
- `requirements.txt`
- `CODE_OF_CONDUCT.md`
- `ISSUE_TEMPLATE.md`
- `PULL_REQUEST_TEMPLATE.md`
- `CONTRIBUTING.md`
- `version_check.py`
- `pyrgg_profile.py`
- Unweighted graph
- Undirected graph
- Exe version
### Changed
- Test system modified
- `README.md` modified
- Docstrings modified
- `get_input` function modified
- `edge_gen` function modified
- Parameters moved to `params.py`
## [0.2] - 2017-09-20
### Added
- CSV format
- YAML format
- Weighted edge list format (WEL)
- ASP format
- Trivial graph format (TGF)
- UCINET DL format
- Pickle format
## [0.1] - 2017-08-19
### Added
- DIMACS format
- JSON format
- README
[Unreleased]: https://github.com/sepandhaghighi/pyrgg/compare/v1.4...dev
[1.4]: https://github.com/sepandhaghighi/pyrgg/compare/v1.3...v1.4
[1.3]: https://github.com/sepandhaghighi/pyrgg/compare/v1.2...v1.3
[1.2]: https://github.com/sepandhaghighi/pyrgg/compare/v1.1...v1.2
[1.1]: https://github.com/sepandhaghighi/pyrgg/compare/v1.0...v1.1
[1.0]: https://github.com/sepandhaghighi/pyrgg/compare/v0.9...v1.0
[0.9]: https://github.com/sepandhaghighi/pyrgg/compare/v0.8...v0.9
[0.8]: https://github.com/sepandhaghighi/pyrgg/compare/v0.7...v0.8
[0.7]: https://github.com/sepandhaghighi/pyrgg/compare/v0.6...v0.7
[0.6]: https://github.com/sepandhaghighi/pyrgg/compare/v0.5...v0.6
[0.5]: https://github.com/sepandhaghighi/pyrgg/compare/v0.4...v0.5
[0.4]: https://github.com/sepandhaghighi/pyrgg/compare/v0.3...v0.4
[0.3]: https://github.com/sepandhaghighi/pyrgg/compare/v0.2...v0.3
[0.2]: https://github.com/sepandhaghighi/pyrgg/compare/v0.1...v0.2
[0.1]: https://github.com/sepandhaghighi/pyrgg/compare/1e238cd...v0.1
pyrgg-1.4/LICENSE 0000664 0000000 0000000 00000002122 14451601534 0013513 0 ustar 00root root 0000000 0000000 MIT License
Copyright (c) 2017 Sepand Haghighi
Copyright (c) 2021 Sadra Sabouri
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
pyrgg-1.4/MANIFEST.in 0000664 0000000 0000000 00000000256 14451601534 0014252 0 ustar 00root root 0000000 0000000 include LICENSE
include *.md
include *.spec
include *.txt
include *.yml
include *.ini
recursive-include paper *.bib
recursive-include paper *.md
recursive-include paper *.pdf pyrgg-1.4/PYRGG.spec 0000664 0000000 0000000 00000001457 14451601534 0014264 0 ustar 00root root 0000000 0000000 # -*- mode: python -*-
block_cipher = None
pyrgg_version = "1.4"
a = Analysis(['pyrgg/__main__.py'],
pathex=['pyrgg'],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name='PYRGG-'+pyrgg_version,
debug=False,
strip=False,
upx=True,
runtime_tmpdir=None,
icon='otherfile/icon.ico',
version="otherfile/Version.rc",
console=True )
pyrgg-1.4/README.md 0000664 0000000 0000000 00000045551 14451601534 0014002 0 ustar 00root root 0000000 0000000
PyRGG: Python Random Graph Generator
## Table of Contents
* [Overview](https://github.com/sepandhaghighi/pyrgg#overview)
* [Installation](https://github.com/sepandhaghighi/pyrgg#installation)
* [Usage](https://github.com/sepandhaghighi/pyrgg#usage)
* [Supported Formats](https://github.com/sepandhaghighi/pyrgg#supported-formats)
* [Example of Usage](https://github.com/sepandhaghighi/pyrgg#example-of-usage)
* [Similar Works](https://github.com/sepandhaghighi/pyrgg#similar-works)
* [Issues & Bug Reports](https://github.com/sepandhaghighi/pyrgg#issues--bug-reports)
* [Contribution](https://github.com/sepandhaghighi/pyrgg/blob/master/.github/CONTRIBUTING.md)
* [References](https://github.com/sepandhaghighi/pyrgg#references)
* [Citing](https://github.com/sepandhaghighi/pyrgg#citing)
* [Authors](https://github.com/sepandhaghighi/pyrgg/blob/master/AUTHORS.md)
* [License](https://github.com/sepandhaghighi/pyrgg/blob/master/LICENSE)
* [Show Your Support](https://github.com/sepandhaghighi/pyrgg#show-your-support)
* [Todo](https://github.com/sepandhaghighi/pyrgg/blob/master/TODO.md)
* [Changelog](https://github.com/sepandhaghighi/pyrgg/blob/master/CHANGELOG.md)
* [Code of Conduct](https://github.com/sepandhaghighi/pyrgg/blob/master/.github/CODE_OF_CONDUCT.md)
## Overview
Pyrgg is an easy-to-use synthetic random graph generator written in Python which supports various graph file formats including DIMACS .gr files.
Pyrgg has the ability to generate graphs of different sizes and is designed to provide input files for broad range of graph-based research applications, including but not limited to testing, benchmarking and performance-analysis of graph processing frameworks.
Pyrgg target audiences are computer scientists who study graph algorithms and graph processing frameworks.
Open Hub |
 |
PyPI Counter |
 |
Github Stars |
 |
Branch |
master |
dev |
CI |
 |
 |
## Installation
### PyPI
- Check [Python Packaging User Guide](https://packaging.python.org/installing/)
- `pip install pyrgg==1.4` (Need root access)
### Source Code
- Download [Version 1.4](https://github.com/sepandhaghighi/pyrgg/archive/v1.4.zip) or [Latest Source ](https://github.com/sepandhaghighi/pyrgg/archive/dev.zip)
- `pip install .` (Need root access)
### Conda
- Check [Conda Managing Package](https://conda.io)
- `conda install -c sepandhaghighi pyrgg` (Need root access)
### Exe Version (Only Windows)
- Download [Exe-Version 1.4](https://github.com/sepandhaghighi/pyrgg/releases/download/v1.4/PYRGG-1.4.exe)
- Run `PYRGG-1.4.exe`
### System Requirements
Pyrgg will likely run on a modern dual core PC. Typical configuration is:
- Dual Core CPU (2.0 Ghz+)
- 4GB of RAM
Note that it may run on lower end equipment though good performance is not guaranteed.
## Usage
- Open `CMD` (Windows) or `Terminal` (UNIX)
- Run `pyrgg` or `python -m pyrgg` (or run `PYRGG.exe`)
- Enter data
## Supported Formats
- [DIMACS(.gr)](http://www.diag.uniroma1.it/challenge9/format.shtml)
```
p sp
a
.
.
.
a
```
* [Sample 1](https://www.dropbox.com/s/i80tnwuuv4iyqet/100.gr.gz?dl=0) (100 Vertices , 3KB)
* [Sample 2](https://www.dropbox.com/s/lqk42pwu7o4xauv/1000.gr.gz?dl=0) (1000 Vertices , 13KB)
* [Sample 3](https://www.dropbox.com/s/93dp8cjs6lnu83u/1000000.gr.gz?dl=0) (1000000 Vertices , 7MB)
* [Sample 4](https://www.dropbox.com/s/rrxdc4wt0ldonfk/5000000.gr.gz?dl=0) (5000000 Vertices , 37MB)
- [CSV(.csv)](https://en.wikipedia.org/wiki/Comma-separated_values)
```
,,
.
.
.
,,
```
* [Sample 1](https://www.dropbox.com/s/dmld0eadftnatr5/100.csv?dl=0) (100 Vertices , 3KB)
* [Sample 2](https://www.dropbox.com/s/juxah4nwamzdegr/1000.csv?dl=0) (1000 Vertices , 51KB)
- [TSV(.tsv)](https://en.wikipedia.org/wiki/Tab-separated_values)
```
.
.
.
```
* [Sample 1](https://www.dropbox.com/s/j3zgs4kx2paxe75/100.tsv?dl=0) (100 Vertices , 29KB)
* [Sample 2](https://www.dropbox.com/s/ykagmjgwlpim6dq/1000.tsv?dl=0) (1000 Vertices , 420KB)
- [JSON(.json)](https://en.wikipedia.org/wiki/JSON)
```
{
"properties": {
"directed": true,
"signed": true,
"multigraph": true,
"weighted": true,
"self_loop": true
},
"graph": {
"nodes":[
{
"id": 1
},
.
.
.
{
"id": n
}
],
"edges":[
{
"source": head_1,
"target": tail_1,
"weight": weight_1
},
.
.
.
{
"source": head_n,
"target": tail_n,
"weight": weight_n
}
]
}
}
```
* [Sample 1](https://www.dropbox.com/s/yvevoyb8559nytb/100.json?dl=0) (100 Vertices , 26KB)
* [Sample 2](https://www.dropbox.com/s/f6kljlch7p2rfhy/1000.json?dl=0) (1000 Vertices , 494KB)
- [YAML(.yaml)](https://en.wikipedia.org/wiki/YAML)
```
graph:
edges:
- source: head_1
target: tail_1
weight: weight_1
.
.
.
- source: head_n
target: tail_n
weight: weight_n
nodes:
- id: 1
.
.
.
- id: n
properties:
directed: true
multigraph: true
self_loop: true
signed: true
weighted: true
```
* [Sample 1](https://www.dropbox.com/s/9seljohtoqjzjzy/30.yaml?dl=0) (30 Vertices , 6KB)
* [Sample 2](https://www.dropbox.com/s/wtfh38rgmn29npi/100.yaml?dl=0) (100 Vertices , 35KB)
- [Weighted Edge List(.wel)](http://www.cs.cmu.edu/~pbbs/benchmarks/graphIO.html)
```
.
.
.
```
* [Sample 1](https://www.dropbox.com/s/moie1xb2wj90y33/100.wel?dl=0) (100 Vertices , 5KB)
* [Sample 2](https://www.dropbox.com/s/h6pohl60okhdnt7/1000.wel?dl=0) (1000 Vertices , 192KB)
- [ASP(.lp)](https://www.mat.unical.it/aspcomp2013/MaximalClique)
```
node(1).
.
.
.
node(n).
edge(head_1,tail_1,weight_1).
.
.
.
edge(head_n,tail_n,weight_n).
```
* [Sample 1](https://www.dropbox.com/s/4bufa1m4uamv48z/100.lp?dl=0) (100 Vertices , 7KB)
* [Sample 2](https://www.dropbox.com/s/w79fh1qva64namw/1000.lp?dl=0) (1000 Vertices , 76KB)
- [Trivial Graph Format(.tgf)](https://en.wikipedia.org/wiki/Trivial_Graph_Format)
```
1
.
.
.
n
#
1 2 weight_1
.
.
.
n k weight_n
```
* [Sample 1](https://www.dropbox.com/s/tehb6f3gz2o5v9c/100.tgf?dl=0) (100 Vertices , 4KB)
* [Sample 2](https://www.dropbox.com/s/9mjeq4w973189cc/1000.tgf?dl=0) (1000 Vertices , 61KB)
- [UCINET DL Format(.dl)](https://sites.google.com/site/ucinetsoftware/home)
```
dl
format=edgelist1
n=
data:
1 2 weight_1
.
.
.
n k weight_n
```
* [Sample 1](https://www.dropbox.com/s/82wrl86uowwjud2/100.dl?dl=0) (100 Vertices , 8KB)
* [Sample 2](https://www.dropbox.com/s/kbzbsy47uvfqdsi/1000.dl?dl=0) (1000 Vertices , 729KB)
- [Matrix Market(.mtx)](https://math.nist.gov/MatrixMarket/formats.html)
```
%%MatrixMarket matrix coordinate real general
.
.
.
```
* [Sample 1](https://www.dropbox.com/s/ztw3vg0roups82q/100.mtx?dl=0) (100 Vertices , 59KB)
* [Sample 2](https://www.dropbox.com/s/skjjvbbzrpvryl4/1000.mtx?dl=0) (1000 Vertices , 1.8MB)
- Graph Line(.gl)
```
: : ... :
: : ... :
.
.
.
: : ... :
```
* [Sample 1](https://www.dropbox.com/s/obmmb5nw1lca9z3/100.gl?dl=0) (100 Vertices , 17KB)
* [Sample 2](https://www.dropbox.com/s/intufsbudnmfv8m/1000.gl?dl=0) (1000 Vertices , 2.4MB)
- GDF(.gdf)
```
nodedef>name VARCHAR,label VARCHAR
node_1,node_1_label
node_2,node_2_label
.
.
.
node_n,node_n_label
edgedef>node1 VARCHAR,node2 VARCHAR, weight DOUBLE
node_1,node_2,weight_1
node_1,node_3,weight_2
.
.
.
node_n,node_2,weight_n
```
* [Sample 1](https://www.dropbox.com/s/7dqox0f8e1f859s/100.gdf?dl=0) (100 Vertices , 21KB)
* [Sample 2](https://www.dropbox.com/s/xabjzpp0p5sr4b9/1000.gdf?dl=0) (1000 Vertices , 690KB)
- [GML(.gml)](https://en.wikipedia.org/wiki/Graph_Modelling_Language)
```
graph
[
multigraph 0
directed 0
node
[
id 1
label "Node 1"
]
node
[
id 2
label "Node 2"
]
.
.
.
node
[
id n
label "Node n"
]
edge
[
source 1
target 2
value W1
]
edge
[
source 2
target 4
value W2
]
.
.
.
edge
[
source n
target r
value Wn
]
]
```
* [Sample 1](https://www.dropbox.com/s/g9uvywn1fwt9aq7/100.gml?dl=0) (100 Vertices , 120KB)
* [Sample 2](https://www.dropbox.com/s/5gt5udezy56mlz9/1000.gml?dl=0) (1000 Vertices , 2.4MB)
- [GEXF(.gexf)](https://github.com/gephi/gexf/wiki/Basic-Concepts#network-topology)
```
PyRGG
File Name
...
...
```
* [Sample 1](https://www.dropbox.com/s/kgx8xl9j0dpk4us/100.gexf?dl=0) (100 Vertices , 63KB)
* [Sample 2](https://www.dropbox.com/s/7a380kf35buvusr/1000.gexf?dl=0) (1000 Vertices , 6.4MB)
- [Graphviz(.gv)](https://graphviz.org/doc/info/lang.html)
```
graph example
{
node1 -- node2 [weight=W1];
node3 -- node4 [weight=W2];
node1 -- node3 [weight=W3];
.
.
.
}
```
* [Sample 1](https://www.dropbox.com/s/ukev1hi4kguomri/100.gv?dl=0) (100 Vertices , 11KB)
* [Sample 2](https://www.dropbox.com/s/vpvvliz96mdea1p/1000.gv?dl=0) (1000 Vertices , 106KB)
* [Online Visualization](https://dreampuf.github.io/GraphvizOnline/)
- [Pickle(.p)](https://docs.python.org/3.5/library/pickle.html) (Binary Format)
* [Sample 1](https://www.dropbox.com/s/4s8zt9i13z39gts/100.p?dl=0) (100 Vertices , 12KB)
* [Sample 2](https://www.dropbox.com/s/fzurqu5au0p1b54/1000.p?dl=0) (1000 Vertices , 340KB)
## Example of Usage
- Generate synthetic data for graph processing frameworks (some of them mentioned here) performance-analysis
- [Medusa](https://github.com/JianlongZhong/Medusa "Medusa")
- [Totem](https://github.com/netsyslab/Totem "Totem")
- [Frog](https://github.com/AndrewStallman/Frog "Frog")
- [CuSha](https://github.com/farkhor/CuSha "CuSha")
- Generate synthetic data for graph benchmark suite like [GAP](https://github.com/sbeamer/gapbs)
## Similar Works
- [Random Modular Network Generator](https://github.com/prathasah/random-modular-network-generator) Generates random graphs with tunable strength of community structure
- [randomGraph](https://github.com/sdghafouri/randomGraph) very simple random graph generator in MATLAB
- [Graph1](https://github.com/Saptaparni/Graph1) Random Graph Generator with Max capacity paths (C++)
## Issues & Bug Reports
Just fill an issue and describe it. We'll check it ASAP!
or send an email to [info@pyrgg.ir](mailto:info@pyrgg.ir "info@pyrgg.ir").
You can also join our discord server
## Citing
If you use pyrgg in your research, please cite the [JOSS paper](http://joss.theoj.org/papers/da33f691984d9a35f66ff93a391bbc26 "Pyrgg JOSS Paper") ;-)
@article{Haghighi2017,
doi = {10.21105/joss.00331},
url = {https://doi.org/10.21105/joss.00331},
year = {2017},
month = {sep},
publisher = {The Open Journal},
volume = {2},
number = {17},
author = {Sepand Haghighi},
title = {Pyrgg: Python Random Graph Generator},
journal = {The Journal of Open Source Software}
}
JOSS |
 |
Zenodo |
 |
## References
1- 9th DIMACS Implementation Challenge - Shortest Paths
2- Problem Based Benchmark Suite
3- MaximalClique - ASP Competition 2013
4- Pitas, Ioannis, ed. Graph-based social media analysis. Vol. 39. CRC Press, 2016.
5- Roughan, Matthew, and Jonathan Tuke. "The hitchhikers guide to sharing graph data." 2015 3rd International Conference on Future Internet of Things and Cloud. IEEE, 2015.
6- Borgatti, Stephen P., Martin G. Everett, and Linton C. Freeman. "Ucinet for Windows: Software for social network analysis." Harvard, MA: analytic technologies 6 (2002).
7- Matrix Market: File Formats
8- Social Network Visualizer
9- Adar, Eytan. "GUESS: a language and interface for graph exploration." Proceedings of the SIGCHI conference on Human Factors in computing systems. 2006.
10- Skiena, Steven S. The algorithm design manual. Springer International Publishing, 2020.
11- Chakrabarti, Deepayan, Yiping Zhan, and Christos Faloutsos. "R-MAT: A recursive model for graph mining." Proceedings of the 2004 SIAM International Conference on Data Mining. Society for Industrial and Applied Mathematics, 2004.
12- Zhong, Jianlong, and Bingsheng He. "An overview of medusa: simplified graph processing on gpus." ACM SIGPLAN Notices 47.8 (2012): 283-284.
13- Ellson, John, et al. "Graphviz and dynagraph—static and dynamic graph drawing tools." Graph drawing software. Springer, Berlin, Heidelberg, 2004. 127-148.
* Logo designed by [Zahra Mobasher](https://www.instagram.com/littleblackoyster)
## Show Your Support
Star This Repo
Give a ⭐️ if this project helped you!
Donate to Our Project
Bitcoin
1KtNLEEeUbTEK9PdN6Ya3ZAKXaqoKUuxCy
Ethereum
0xcD4Db18B6664A9662123D4307B074aE968535388
Litecoin
Ldnz5gMcEeV8BAdsyf8FstWDC6uyYR6pgZ
Doge
DDUnKpFQbBqLpFVZ9DfuVysBdr249HxVDh
Tron
TCZxzPZLcJHr2qR3uPUB1tXB6L3FDSSAx7
Ripple
rN7ZuRG7HDGHR5nof8nu5LrsbmSB61V1qq
Binance Coin
bnb1zglwcf0ac3d0s2f6ck5kgwvcru4tlctt4p5qef
Tether
0xcD4Db18B6664A9662123D4307B074aE968535388
Dash
Xd3Yn2qZJ7VE8nbKw2fS98aLxR5M6WUU3s
Stellar
GALPOLPISRHIYHLQER2TLJRGUSZH52RYDK6C3HIU4PSMNAV65Q36EGNL
Zilliqa
zil1knmz8zj88cf0exr2ry7nav9elehxfcgqu3c5e5
Coffeete
pyrgg-1.4/TODO.md 0000664 0000000 0000000 00000001073 14451601534 0013601 0 ustar 00root root 0000000 0000000 ## TODO
- [x] Formats
- [x] DIMACS
- [x] JSON
- [x] YAML
- [x] Pickle
- [x] CSV
- [x] TSV
- [x] WEL
- [x] ASP
- [x] TGF
- [x] UCINET DL
- [x] GML
- [x] GDF
- [x] Matrix Market
- [x] Graph Line
- [x] GEXF
- [x] Graphviz
- [ ] Sizes
- [x] Small
- [x] Medium
- [ ] Large
- [x] Weighted Graph
- [x] Signed Weights
- [x] Unweighted Graph
- [x] Dense Graph
- [x] Sparse Graph
- [x] Directed Graph
- [x] Self loop
- [x] Parallel Arc
- [ ] Config file
- [ ] Multithreading
- [ ] GUI
- [ ] Erdős–Rényi model
- [ ] Tree pyrgg-1.4/autopep8.bat 0000664 0000000 0000000 00000000514 14451601534 0014746 0 ustar 00root root 0000000 0000000 python -m autopep8 pyrgg --recursive --aggressive --aggressive --in-place --pep8-passes 2000 --verbose
python -m autopep8 setup.py --recursive --aggressive --aggressive --in-place --pep8-passes 2000 --verbose
python -m autopep8 otherfile/version_check.py --recursive --aggressive --aggressive --in-place --pep8-passes 2000 --verbose pyrgg-1.4/build_exe.bat 0000664 0000000 0000000 00000000332 14451601534 0015137 0 ustar 00root root 0000000 0000000 @echo off
python --version | find /i "Python 3.4" > nul
echo -----
if errorlevel 1 (
echo Warning : Please use Python 3.4.x
) else (
echo Python version check done!
)
echo -----
python -m PyInstaller PYRGG.spec
pause pyrgg-1.4/codecov.yml 0000664 0000000 0000000 00000000307 14451601534 0014656 0 ustar 00root root 0000000 0000000 codecov:
require_ci_to_pass: yes
coverage:
precision: 2
round: up
range: "70...100"
status:
patch:
default:
enabled: no
project:
default:
threshold: 1%
pyrgg-1.4/dev-requirements.txt 0000664 0000000 0000000 00000000253 14451601534 0016551 0 ustar 00root root 0000000 0000000 art==6.0
pyyaml==6.0
scipy>=1.2.0
networkx>=2.1
pydot>=1.2.4
pytest>=4.3.1
pytest-cov>=2.6.1
setuptools>=40.8.0
vulture>=1.0
bandit>=1.5.1
pydocstyle>=3.0.0
flake8>=3.5.0
pyrgg-1.4/otherfile/ 0000775 0000000 0000000 00000000000 14451601534 0014472 5 ustar 00root root 0000000 0000000 pyrgg-1.4/otherfile/RELEASE.md 0000664 0000000 0000000 00000002732 14451601534 0016100 0 ustar 00root root 0000000 0000000 # PyRGG Release Instructions
#### Last Update: 2023-07-02
1. Create the `release` branch under `dev`
2. Update all version tags
1. `setup.py`
2. `README.md`
3. `PYRGG.spec`
4. `otherfile/version_check.py`
5. `otherfile/meta.yaml`
6. `otherfile/Version.rc`
7. `pyrgg/params.py`
3. Update `CHANGELOG.md`
1. Add a new header under `Unreleased` section (Example: `## [0.1] - 2022-08-17`)
2. Add a new compare link to the end of the file (Example: `[0.2]: https://github.com/sepandhaghighi/pyrgg/compare/v0.1...v0.2`)
3. Update `dev` compare link (Example: `[Unreleased]: https://github.com/sepandhaghighi/pyrgg/compare/v0.2...dev`)
4. Create a PR from `release` to `dev`
1. Title: `Version x.x` (Example: `Version 0.1`)
2. Tag all related issues
3. Labels: `release`
4. Set milestone
5. Wait for all CI pass
6. Need review (**1** reviewer)
7. Squash and merge
8. Delete `release` branch
5. Merge `dev` branch into `master`
1. Checkout to `master`
2. `git merge dev`
3. `git push origin master`
4. Wait for all CI pass
6. Build EXE file
1. Run `build_exe.bat` (Use `Python 3.4.x`)
7. Create a new release
1. Target branch: `master`
2. Tag: `vx.x` (Example: `v0.1`)
3. Title: `Version x.x` (Example: `Version 0.1`)
4. Copy changelogs
5. Tag all related issues
6. Upload EXE file
8. Bump!!
9. Close this version issues
10. Close milestone
11. Update website
1. `git checkout gh-pages`
2. Update all version tags
1. `index.html`
3. Update size of files
1. `index.html` pyrgg-1.4/otherfile/Version.rc 0000664 0000000 0000000 00000001460 14451601534 0016446 0 ustar 00root root 0000000 0000000 VSVersionInfo(
ffi=FixedFileInfo(
filevers=(1, 4, 0, 0),
prodvers=(1, 4, 0, 0),
mask=0x3f,
flags=0x0,
OS=0x40004,
fileType=0x1,
subtype=0x0,
date=(0, 0)
),
kids=[
StringFileInfo(
[
StringTable(
u'040904B0',
[StringStruct(u'CompanyName', u'PyRGG Development Team'),
StringStruct(u'FileDescription', u'PYRGG.exe'),
StringStruct(u'FileVersion', u'1.4.0.0'),
StringStruct(u'InternalName', u'PYRGG.exe'),
StringStruct(u'LegalCopyright', u'Copyright (c) 2023 PyRGG Development Team'),
StringStruct(u'OriginalFilename', u'PYRGG.exe'),
StringStruct(u'ProductName', u'PYRGG'),
StringStruct(u'ProductVersion', u'1, 4, 0, 0')])
]),
VarFileInfo([VarStruct(u'Translation', [1033, 1200])])
]
) pyrgg-1.4/otherfile/icon.ico 0000664 0000000 0000000 00000661562 14451601534 0016136 0 ustar 00root root 0000000 0000000 h 00 % . @@ (B D HH T `` ( .p Vx ( HH HHHH HH ( 0 ;; 11 dd xx dd 11 ;;;; 11 dd xx dd 11 ;; ( @ )ll) 77 55 AA 55 77 ))llll)) 77 55 AA 55 77 )ll) ( 0 ` $
6nn6
(rr( .. || ;; ^^ rr rr ^|||^ ;; rrs || .yyyxxy. (( rr
66nrrr|||n}}}yyy|}}aaayyy||}nn6{||6
rr (( www .. || ;; ^^ rr rr ^㴴^ ;; || .. (rr(
6nn6
? ? ( @ @ 7gg7 GG %vv% %% oo 99 gg jjj nnnttt jjj|||xxx gpppjjjg 9}}}vvv|||ddd9 aaa{{{ owwwo %}~~^__ooorrr% sss %eeettt% vv zzz{{{ GG iiilllkkk vvv7{{{```7g[[[XXXuuuglllVVWXXXiiitttzzzlllsss|||xxx~~~ghg{{{}}}mmmfffqqqz{ziiihhhvvvaaaQQQwww{{{XXX^^^~~~grrrhhiuuug7zzz{{{7bcbggguuu G||||||G vqqqooo|||v %}}}yyy% oooZZZsss %nnnttt% opppo gggqqqqqq 9tttvvv9 g~~rrrg yyywxx lll gg 99 oo %% %vv% GG 7gg7 ? ? ? ? ( H Q #LzzL#
3pp3
ee %~~% ww QQ :: VV jbbb|||j oYYYqqqo jKKKyyyj VbbbyyyaaaV :ZZZnnn: hhhjjj VWWYYYiiiFFF QkkkQ eee___ w{{{YYYqqqxxx^^^w %pppyyy}}}% ~zzzdddpppyyyfffmmm~ wwwuuu epppyyyuuue
iii
3sssyyy3 pwww\\\TTTp ~~~ooo#@@@ddeiiixxxnnn#L~~~GGGcccrrr[[[Lzttunnnmmm888|}}SSSnnozxxxOOOkkkpppttt|||ooo{{{rrq}~~qqqeeeaaacccnnndddddennncccaaaeeeqqq~~~qqq|||nnn|||tttpppkklOOOwwwnnnTTT}}}999lllnnnuuuz[[[qrrcccGGG~~~zLmmmxxxiiieee?@?L#ppp}}}#TTT\\\www pyyysssp 3iii3
vvvzzzppp
etuuwwwe nnnfffyyypppddd{{{ ~}}}xxxqqq~ %^^^wwwrrrYYYzzz% w_`_eeew ijj QFFFiiiYYYWWWQ jjjggg oooZZY :aaaxxxccc: VyyyKKKV jqqqXXXj o}}}aaao jj VV :: QQ ww %~~% ee
3pp3
#LzzL# ? ? ? ? ( ` /TzzT/
+^^+
/qq/ UU kk kk TT ,, bb FFF 66 Oeee___hhhN baaaLLLdddb iiii111FFFi iwwwpppi bNNNrrrAAA111b NpppTTTxyyqqqTTTN 6BBAHHHcccWWWwww<<