pyrgg


Namepyrgg JSON
Version 1.4 PyPI version JSON
download
home_pagehttps://github.com/sepandhaghighi/pyrgg
SummaryPython Random Graph Generator
upload_time2023-07-06 18:56:56
maintainer
docs_urlNone
authorPyRGG Development Team
requires_python>=3.5
licenseMIT
keywords random graph python3 python generator graph-process generator dimacs json yaml pickle csv tsv wel asp tgf ucinet
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            
<div align="center">
	<img src="https://github.com/sepandhaghighi/pyrgg/raw/master/otherfile/logo.png" width="450">
	<h1>PyRGG: Python Random Graph Generator</h1>
	<a href="http://www.shaghighi.ir/pyrgg">
		<img src="https://img.shields.io/website-up-down-green-red/http/shields.io.svg?label=website">
	</a>
	<a href="https://badge.fury.io/py/pyrgg">
		<img src="https://badge.fury.io/py/pyrgg.svg" alt="PyPI version" height="18">
	</a>
	<a href="https://anaconda.org/sepandhaghighi/pyrgg">
		<img src="https://anaconda.org/sepandhaghighi/pyrgg/badges/version.svg">
	</a>
	<a href="https://codecov.io/gh/sepandhaghighi/pyrgg">
  		<img src="https://codecov.io/gh/sepandhaghighi/pyrgg/branch/master/graph/badge.svg" alt="Codecov">
	</a>
	<a href="https://www.python.org/">
		<img src="https://img.shields.io/badge/built%20with-Python3-green.svg" alt="built with Python3">
	</a>
	<a href="https://discord.gg/dfYAWVMaCW">
  		<img src="https://img.shields.io/discord/1013411447130308669.svg" alt="Discord Channel">
	</a>
</div>	

## 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 <a href ="http://www.diag.uniroma1.it/challenge9/format.shtml">DIMACS .gr </a> 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.

<table>
	<tr> 
		<td align="center">Open Hub</td>
		<td align="center"><a href="https://www.openhub.net/p/pyrgg"><img src="https://www.openhub.net/p/pyrgg/widgets/project_thin_badge.gif"></a></td>	
	</tr>
	<tr>
		<td align="center">PyPI Counter</td>
		<td align="center"><a href="http://pepy.tech/project/pyrgg"><img src="http://pepy.tech/badge/pyrgg"></a></td>
	</tr>
	<tr>
		<td align="center">Github Stars</td>
		<td align="center"><a href="https://github.com/sepandhaghighi/pyrgg"><img src="https://img.shields.io/github/stars/sepandhaghighi/pyrgg.svg?style=social&label=Stars"></a></td>
	</tr>
</table>



<table>
	<tr> 
		<td align="center">Branch</td>
		<td align="center">master</td>	
		<td align="center">dev</td>	
	</tr>
	<tr>
		<td align="center">CI</td>
		<td align="center"><img src="https://github.com/sepandhaghighi/pyrgg/workflows/CI/badge.svg?branch=master"></td>
		<td align="center"><img src="https://github.com/sepandhaghighi/pyrgg/workflows/CI/badge.svg?branch=dev"></td>
	</tr>
</table>


<table>
	<tr> 
		<td align="center">Code Quality</td>
		<td align="center"><a href="https://www.codacy.com/app/sepand-haghighi/pyrgg?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=sepandhaghighi/pyrgg&amp;utm_campaign=Badge_Grade"><img src="https://api.codacy.com/project/badge/Grade/11ec048bcd594d84997380b64d2d4add"/></a></td>	
        <td align="center"><a href="https://codebeat.co/projects/github-com-sepandhaghighi-pyrgg-dev"><img alt="codebeat badge" src="https://codebeat.co/badges/3f6c7449-3dfc-406b-b233-9fe615c2d103" /></a></td>	
		<td align="center"><a href="https://www.codefactor.io/repository/github/sepandhaghighi/pyrgg"><img src="https://www.codefactor.io/repository/github/sepandhaghighi/pyrgg/badge" alt="CodeFactor" /></a></td>	
	</tr>
</table>


## 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		

<div align="center">

<a href="https://asciinema.org/a/539844" target="_blank"><img src="https://asciinema.org/a/539844.svg" /></a>

</div>


## Supported Formats 			

- [DIMACS(.gr)](http://www.diag.uniroma1.it/challenge9/format.shtml)
	```
		p sp <number of vertices> <number of edges>
		a <head_1> <tail_1> <weight_1>

		.
		.
		.
		
		a <head_n> <tail_n> <weight_n>
	```
	* [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)
	```
		<head_1>,<tail_1>,<weight_1>

		.
		.
		.
		
		<head_n>,<tail_n>,<weight_n>
	```
	* [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)
	```
		<head_1>	<tail_1>	<weight_1>

		.
		.
		.
		
		<head_n>	<tail_n>	<weight_n>
	```
	* [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)	
	```
		<head_1> <tail_1> <weight_1>
		
		.
		.
		.
		
		<head_n> <tail_n> <weight_n>	
	```
	* [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=<number of vertices>
		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
       <number of vertices>  <number of vertices>  <number of edges>
       <head_1>    <tail_1>    <weight_1> 
       .
       .
       .
       <head_n>    <tail_n>    <weight_n> 
   ```
	* [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)
	```
	   <head_1> <tail_1>:<weight_1> <tail_2>:<weight_2>  ... <tail_n>:<weight_n>
	   <head_2> <tail_1>:<weight_1> <tail_2>:<weight_2>  ... <tail_n>:<weight_n>
	   .
	   .
	   .
	   <head_n> <tail_1>:<weight_1> <tail_2>:<weight_2>  ... <tail_n>:<weight_n>
	```
	* [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)
    ```
        <?xml version="1.0" encoding="UTF-8"?>
        <gexf xmlns="http://www.gexf.net/1.2draft" version="1.2">
            <meta lastmodifieddate="2009-03-20">
                <creator>PyRGG</creator>
                <description>File Name</description>
            </meta>
            <graph defaultedgetype="directed">
                <nodes>
                    <node id="1" label="Node 1" />
                    <node id="2" label="Node 2" />
                    ...
                </nodes>
                <edges>
                    <edge id="1" source="1" target="2" weight="400" />
                    ...
                </edges>
            </graph>
        </gexf>
    ```
	* [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			

<a href="https://discord.gg/dfYAWVMaCW">
  <img src="https://img.shields.io/discord/1013411447130308669.svg?style=for-the-badge" alt="Discord Channel">
</a>


## Citing

If you use pyrgg in your research, please cite the [JOSS paper](http://joss.theoj.org/papers/da33f691984d9a35f66ff93a391bbc26 "Pyrgg JOSS Paper") ;-)

<pre>
@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}
}
</pre>

<table>
	<tr> 
		<td align="center">JOSS</td>
		<td align="center"><a href="http://joss.theoj.org/papers/da33f691984d9a35f66ff93a391bbc26"><img src="http://joss.theoj.org/papers/da33f691984d9a35f66ff93a391bbc26/status.svg"></a></td>	
	</tr>
	<tr>
		<td align="center">Zenodo</td>
		<td align="center"><a href="https://zenodo.org/badge/latestdoi/89410101"><img src="https://zenodo.org/badge/89410101.svg" alt="DOI"></a></td>
	</tr>
</table>
 			

## References
					

<blockquote>1- <a href="http://www.diag.uniroma1.it/challenge9/format.shtml">9th DIMACS Implementation Challenge - Shortest Paths</a> </blockquote>

<blockquote>2- <a href="http://www.cs.cmu.edu/~pbbs/benchmarks/graphIO.html">Problem Based Benchmark Suite</a></blockquote>

<blockquote>3- <a href="https://www.mat.unical.it/aspcomp2013/MaximalClique">MaximalClique - ASP Competition 2013</a></blockquote>

<blockquote>4- Pitas, Ioannis, ed. Graph-based social media analysis. Vol. 39. CRC Press, 2016. </blockquote>	

<blockquote>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. </blockquote>	

<blockquote>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). </blockquote>

<blockquote>7- <a href="https://math.nist.gov/MatrixMarket/formats.html">Matrix Market: File Formats</a> </blockquote>		

<blockquote>8- <a href="https://socnetv.org/docs/formats.html#GML">Social Network Visualizer</a> </blockquote>

<blockquote>9- Adar, Eytan. "GUESS: a language and interface for graph exploration." Proceedings of the SIGCHI conference on Human Factors in computing systems. 2006. </blockquote>

<blockquote>10- Skiena, Steven S. The algorithm design manual. Springer International Publishing, 2020. </blockquote>

<blockquote>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. </blockquote>

<blockquote>12- Zhong, Jianlong, and Bingsheng He. "An overview of medusa: simplified graph processing on gpus." ACM SIGPLAN Notices 47.8 (2012): 283-284.</blockquote>

<blockquote>13- Ellson, John, et al. "Graphviz and dynagraph—static and dynamic graph drawing tools." Graph drawing software. Springer, Berlin, Heidelberg, 2004. 127-148.</blockquote>


* Logo designed by [Zahra Mobasher](https://www.instagram.com/littleblackoyster)	
					
 
## Show Your Support
								
<h3>Star This Repo</h3>					

Give a ⭐️ if this project helped you!

<h3>Donate to Our Project</h3>	

<h4>Bitcoin</h4>
1KtNLEEeUbTEK9PdN6Ya3ZAKXaqoKUuxCy
<h4>Ethereum</h4>
0xcD4Db18B6664A9662123D4307B074aE968535388
<h4>Litecoin</h4>
Ldnz5gMcEeV8BAdsyf8FstWDC6uyYR6pgZ
<h4>Doge</h4>
DDUnKpFQbBqLpFVZ9DfuVysBdr249HxVDh
<h4>Tron</h4>
TCZxzPZLcJHr2qR3uPUB1tXB6L3FDSSAx7
<h4>Ripple</h4>
rN7ZuRG7HDGHR5nof8nu5LrsbmSB61V1qq
<h4>Binance Coin</h4>
bnb1zglwcf0ac3d0s2f6ck5kgwvcru4tlctt4p5qef
<h4>Tether</h4>
0xcD4Db18B6664A9662123D4307B074aE968535388
<h4>Dash</h4>
Xd3Yn2qZJ7VE8nbKw2fS98aLxR5M6WUU3s
<h4>Stellar</h4>		
GALPOLPISRHIYHLQER2TLJRGUSZH52RYDK6C3HIU4PSMNAV65Q36EGNL
<h4>Zilliqa</h4>
zil1knmz8zj88cf0exr2ry7nav9elehxfcgqu3c5e5
<h4>Coffeete</h4>
<a href="http://www.coffeete.ir/opensource">
<img src="http://www.coffeete.ir/images/buttons/lemonchiffon.png" style="width:260px;" />
</a>


# 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




            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/sepandhaghighi/pyrgg",
    "name": "pyrgg",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.5",
    "maintainer_email": "",
    "keywords": "random graph python3 python generator graph-process generator DIMACS JSON YAML Pickle CSV TSV WEL ASP TGF UCINET",
    "author": "PyRGG Development Team",
    "author_email": "info@pyrgg.ir",
    "download_url": "https://files.pythonhosted.org/packages/0a/ac/bb1f48af14b17a18ad78abd44ada336a75729c2eb45e9d6a5db43f5ef86a/pyrgg-1.4.tar.gz",
    "platform": null,
    "description": "\n<div align=\"center\">\n\t<img src=\"https://github.com/sepandhaghighi/pyrgg/raw/master/otherfile/logo.png\" width=\"450\">\n\t<h1>PyRGG: Python Random Graph Generator</h1>\n\t<a href=\"http://www.shaghighi.ir/pyrgg\">\n\t\t<img src=\"https://img.shields.io/website-up-down-green-red/http/shields.io.svg?label=website\">\n\t</a>\n\t<a href=\"https://badge.fury.io/py/pyrgg\">\n\t\t<img src=\"https://badge.fury.io/py/pyrgg.svg\" alt=\"PyPI version\" height=\"18\">\n\t</a>\n\t<a href=\"https://anaconda.org/sepandhaghighi/pyrgg\">\n\t\t<img src=\"https://anaconda.org/sepandhaghighi/pyrgg/badges/version.svg\">\n\t</a>\n\t<a href=\"https://codecov.io/gh/sepandhaghighi/pyrgg\">\n  \t\t<img src=\"https://codecov.io/gh/sepandhaghighi/pyrgg/branch/master/graph/badge.svg\" alt=\"Codecov\">\n\t</a>\n\t<a href=\"https://www.python.org/\">\n\t\t<img src=\"https://img.shields.io/badge/built%20with-Python3-green.svg\" alt=\"built with Python3\">\n\t</a>\n\t<a href=\"https://discord.gg/dfYAWVMaCW\">\n  \t\t<img src=\"https://img.shields.io/discord/1013411447130308669.svg\" alt=\"Discord Channel\">\n\t</a>\n</div>\t\n\n## Table of Contents\t\t\t\t\t\n   * [Overview](https://github.com/sepandhaghighi/pyrgg#overview)\n   * [Installation](https://github.com/sepandhaghighi/pyrgg#installation)\n   * [Usage](https://github.com/sepandhaghighi/pyrgg#usage)\n   * [Supported Formats](https://github.com/sepandhaghighi/pyrgg#supported-formats)\n   * [Example of Usage](https://github.com/sepandhaghighi/pyrgg#example-of-usage)\n   * [Similar Works](https://github.com/sepandhaghighi/pyrgg#similar-works)\n   * [Issues & Bug Reports](https://github.com/sepandhaghighi/pyrgg#issues--bug-reports)\n   * [Contribution](https://github.com/sepandhaghighi/pyrgg/blob/master/.github/CONTRIBUTING.md)\n   * [References](https://github.com/sepandhaghighi/pyrgg#references)\n   * [Citing](https://github.com/sepandhaghighi/pyrgg#citing)\n   * [Authors](https://github.com/sepandhaghighi/pyrgg/blob/master/AUTHORS.md)\n   * [License](https://github.com/sepandhaghighi/pyrgg/blob/master/LICENSE)\n   * [Show Your Support](https://github.com/sepandhaghighi/pyrgg#show-your-support)\n   * [Todo](https://github.com/sepandhaghighi/pyrgg/blob/master/TODO.md)\n   * [Changelog](https://github.com/sepandhaghighi/pyrgg/blob/master/CHANGELOG.md)\n   * [Code of Conduct](https://github.com/sepandhaghighi/pyrgg/blob/master/.github/CODE_OF_CONDUCT.md)\t\t\t\n\t\t\t\t\n## Overview\t\t\t\nPyrgg is an easy-to-use synthetic random graph generator written in Python which supports various graph file formats including <a href =\"http://www.diag.uniroma1.it/challenge9/format.shtml\">DIMACS .gr </a> files.\nPyrgg 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.\nPyrgg target audiences are computer scientists who study graph algorithms and graph processing frameworks.\n\n<table>\n\t<tr> \n\t\t<td align=\"center\">Open Hub</td>\n\t\t<td align=\"center\"><a href=\"https://www.openhub.net/p/pyrgg\"><img src=\"https://www.openhub.net/p/pyrgg/widgets/project_thin_badge.gif\"></a></td>\t\n\t</tr>\n\t<tr>\n\t\t<td align=\"center\">PyPI Counter</td>\n\t\t<td align=\"center\"><a href=\"http://pepy.tech/project/pyrgg\"><img src=\"http://pepy.tech/badge/pyrgg\"></a></td>\n\t</tr>\n\t<tr>\n\t\t<td align=\"center\">Github Stars</td>\n\t\t<td align=\"center\"><a href=\"https://github.com/sepandhaghighi/pyrgg\"><img src=\"https://img.shields.io/github/stars/sepandhaghighi/pyrgg.svg?style=social&label=Stars\"></a></td>\n\t</tr>\n</table>\n\n\n\n<table>\n\t<tr> \n\t\t<td align=\"center\">Branch</td>\n\t\t<td align=\"center\">master</td>\t\n\t\t<td align=\"center\">dev</td>\t\n\t</tr>\n\t<tr>\n\t\t<td align=\"center\">CI</td>\n\t\t<td align=\"center\"><img src=\"https://github.com/sepandhaghighi/pyrgg/workflows/CI/badge.svg?branch=master\"></td>\n\t\t<td align=\"center\"><img src=\"https://github.com/sepandhaghighi/pyrgg/workflows/CI/badge.svg?branch=dev\"></td>\n\t</tr>\n</table>\n\n\n<table>\n\t<tr> \n\t\t<td align=\"center\">Code Quality</td>\n\t\t<td align=\"center\"><a href=\"https://www.codacy.com/app/sepand-haghighi/pyrgg?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=sepandhaghighi/pyrgg&amp;utm_campaign=Badge_Grade\"><img src=\"https://api.codacy.com/project/badge/Grade/11ec048bcd594d84997380b64d2d4add\"/></a></td>\t\n        <td align=\"center\"><a href=\"https://codebeat.co/projects/github-com-sepandhaghighi-pyrgg-dev\"><img alt=\"codebeat badge\" src=\"https://codebeat.co/badges/3f6c7449-3dfc-406b-b233-9fe615c2d103\" /></a></td>\t\n\t\t<td align=\"center\"><a href=\"https://www.codefactor.io/repository/github/sepandhaghighi/pyrgg\"><img src=\"https://www.codefactor.io/repository/github/sepandhaghighi/pyrgg/badge\" alt=\"CodeFactor\" /></a></td>\t\n\t</tr>\n</table>\n\n\n## Installation\t\t\n\n### PyPI\n\n- Check [Python Packaging User Guide](https://packaging.python.org/installing/)     \n- `pip install pyrgg==1.4` (Need root access)\t\t\t\t\t\t\t\n\n### Source Code\n- Download [Version 1.4](https://github.com/sepandhaghighi/pyrgg/archive/v1.4.zip) or [Latest Source ](https://github.com/sepandhaghighi/pyrgg/archive/dev.zip)\n- `pip install .` (Need root access)\n\n### Conda\n\n- Check [Conda Managing Package](https://conda.io)\n- `conda install -c sepandhaghighi pyrgg` (Need root access)\t\n\n### Exe Version (Only Windows)\n- Download [Exe-Version 1.4](https://github.com/sepandhaghighi/pyrgg/releases/download/v1.4/PYRGG-1.4.exe)\n- Run `PYRGG-1.4.exe`\n\n### System Requirements\nPyrgg will likely run on a modern dual core PC. Typical configuration is:\n\n- Dual Core CPU (2.0 Ghz+)\n- 4GB of RAM\n\nNote that it may run on lower end equipment though good performance is not guaranteed.\t\t\n\n\n## Usage\n- Open `CMD` (Windows) or `Terminal` (UNIX)\n- Run `pyrgg` or `python -m pyrgg` (or run `PYRGG.exe`)\n- Enter data\t\t\n\n<div align=\"center\">\n\n<a href=\"https://asciinema.org/a/539844\" target=\"_blank\"><img src=\"https://asciinema.org/a/539844.svg\" /></a>\n\n</div>\n\n\n## Supported Formats \t\t\t\n\n- [DIMACS(.gr)](http://www.diag.uniroma1.it/challenge9/format.shtml)\n\t```\n\t\tp sp <number of vertices> <number of edges>\n\t\ta <head_1> <tail_1> <weight_1>\n\n\t\t.\n\t\t.\n\t\t.\n\t\t\n\t\ta <head_n> <tail_n> <weight_n>\n\t```\n\t* [Sample 1](https://www.dropbox.com/s/i80tnwuuv4iyqet/100.gr.gz?dl=0) (100 Vertices , 3KB)\n\t* [Sample 2](https://www.dropbox.com/s/lqk42pwu7o4xauv/1000.gr.gz?dl=0) (1000 Vertices , 13KB)\n\t* [Sample 3](https://www.dropbox.com/s/93dp8cjs6lnu83u/1000000.gr.gz?dl=0) (1000000 Vertices , 7MB)\n\t* [Sample 4](https://www.dropbox.com/s/rrxdc4wt0ldonfk/5000000.gr.gz?dl=0) (5000000 Vertices , 37MB)\n- [CSV(.csv)](https://en.wikipedia.org/wiki/Comma-separated_values)\n\t```\n\t\t<head_1>,<tail_1>,<weight_1>\n\n\t\t.\n\t\t.\n\t\t.\n\t\t\n\t\t<head_n>,<tail_n>,<weight_n>\n\t```\n\t* [Sample 1](https://www.dropbox.com/s/dmld0eadftnatr5/100.csv?dl=0) (100 Vertices , 3KB)\n\t* [Sample 2](https://www.dropbox.com/s/juxah4nwamzdegr/1000.csv?dl=0) (1000 Vertices , 51KB)\n\n- [TSV(.tsv)](https://en.wikipedia.org/wiki/Tab-separated_values)\n\t```\n\t\t<head_1>\t<tail_1>\t<weight_1>\n\n\t\t.\n\t\t.\n\t\t.\n\t\t\n\t\t<head_n>\t<tail_n>\t<weight_n>\n\t```\n\t* [Sample 1](https://www.dropbox.com/s/j3zgs4kx2paxe75/100.tsv?dl=0) (100 Vertices , 29KB)\n\t* [Sample 2](https://www.dropbox.com/s/ykagmjgwlpim6dq/1000.tsv?dl=0) (1000 Vertices , 420KB)\n\n- [JSON(.json)](https://en.wikipedia.org/wiki/JSON)\n\n\t```\n\t{\n\t\t\"properties\": {\n\t\t\t\"directed\": true,\n\t\t\t\"signed\": true,\n\t\t\t\"multigraph\": true,\n\t\t\t\"weighted\": true,\n\t\t\t\"self_loop\": true\n\t\t},\n\t\t\"graph\": {\n\t\t\t\"nodes\":[\n\t\t\t{\n\t\t\t\t\"id\": 1\n\t\t\t},\n\n\t\t\t.\n\t\t\t.\n\t\t\t.\n\n\t\t\t{\n\t\t\t\t\"id\": n\n\t\t\t}\n\t\t\t],\n\t\t\t\"edges\":[\n\t\t\t{\n\t\t\t\t\"source\": head_1,\n\t\t\t\t\"target\": tail_1,\n\t\t\t\t\"weight\": weight_1\n\t\t\t},\n\n\t\t\t.\n\t\t\t.\n\t\t\t.\n\n\t\t\t{\n\t\t\t\t\"source\": head_n,\n\t\t\t\t\"target\": tail_n,\n\t\t\t\t\"weight\": weight_n\n\t\t\t}\n\t\t\t]\n\t\t}\n\t}\n\t```\n\t* [Sample 1](https://www.dropbox.com/s/yvevoyb8559nytb/100.json?dl=0) (100 Vertices , 26KB)\n\t* [Sample 2](https://www.dropbox.com/s/f6kljlch7p2rfhy/1000.json?dl=0) (1000 Vertices , 494KB)\n- [YAML(.yaml)](https://en.wikipedia.org/wiki/YAML)\n\t```\n\t\tgraph:\n  \t\t\tedges:\n\t\t\t- source: head_1\n    \t  \ttarget: tail_1\n    \t  \tweight: weight_1\n\t\t\n\t\t\t.\n\t\t\t.\n\t\t\t.\n\n\t\t\t- source: head_n\n    \t  \ttarget: tail_n\n    \t  \tweight: weight_n\n\t\t\t\t\t\t\n\t\t\tnodes:\n  \t\t\t- id: 1\n  \n  \t\t\t.\n\t\t\t.\n\t\t\t.\n\n\t\t\t- id: n\n\t\tproperties:\n  \t\t\tdirected: true\n  \t\t\tmultigraph: true\n  \t\t\tself_loop: true\n  \t\t\tsigned: true\n  \t\t\tweighted: true\n\n\t```\n\t* [Sample 1](https://www.dropbox.com/s/9seljohtoqjzjzy/30.yaml?dl=0) (30 Vertices , 6KB)\n\t* [Sample 2](https://www.dropbox.com/s/wtfh38rgmn29npi/100.yaml?dl=0) (100 Vertices , 35KB)\n- [Weighted Edge List(.wel)](http://www.cs.cmu.edu/~pbbs/benchmarks/graphIO.html)\t\n\t```\n\t\t<head_1> <tail_1> <weight_1>\n\t\t\n\t\t.\n\t\t.\n\t\t.\n\t\t\n\t\t<head_n> <tail_n> <weight_n>\t\n\t```\n\t* [Sample 1](https://www.dropbox.com/s/moie1xb2wj90y33/100.wel?dl=0) (100 Vertices , 5KB)\n\t* [Sample 2](https://www.dropbox.com/s/h6pohl60okhdnt7/1000.wel?dl=0) (1000 Vertices , 192KB)\n- [ASP(.lp)](https://www.mat.unical.it/aspcomp2013/MaximalClique)\n\t```\n\t\tnode(1).\n\t\t.\n\t\t.\n\t\t.\n\t\tnode(n).\n\t\tedge(head_1,tail_1,weight_1).\n\t\t.\n\t\t.\n\t\t.\n\t\tedge(head_n,tail_n,weight_n).\n\t```\n\t* [Sample 1](https://www.dropbox.com/s/4bufa1m4uamv48z/100.lp?dl=0) (100 Vertices , 7KB)\n\t* [Sample 2](https://www.dropbox.com/s/w79fh1qva64namw/1000.lp?dl=0) (1000 Vertices , 76KB)\n- [Trivial Graph Format(.tgf)](https://en.wikipedia.org/wiki/Trivial_Graph_Format)\n\t```\n\t\t1\n\t\t.\n\t\t.\n\t\t.\n\t\tn\n\t\t#\n\t\t1 2 weight_1\n\t\t.\n\t\t.\n\t\t.\n\t\tn k weight_n\n\t```\n\t* [Sample 1](https://www.dropbox.com/s/tehb6f3gz2o5v9c/100.tgf?dl=0) (100 Vertices , 4KB)\n\t* [Sample 2](https://www.dropbox.com/s/9mjeq4w973189cc/1000.tgf?dl=0) (1000 Vertices , 61KB)\n- [UCINET DL Format(.dl)](https://sites.google.com/site/ucinetsoftware/home)\n\t```\n\t\tdl\n\t\tformat=edgelist1\n\t\tn=<number of vertices>\n\t\tdata:\n\t\t1 2 weight_1\n\t\t.\n\t\t.\n\t\t.\n\t\tn k weight_n\t\n\t```\n\t* [Sample 1](https://www.dropbox.com/s/82wrl86uowwjud2/100.dl?dl=0) (100 Vertices , 8KB)\n\t* [Sample 2](https://www.dropbox.com/s/kbzbsy47uvfqdsi/1000.dl?dl=0) (1000 Vertices , 729KB)\n- [Matrix Market(.mtx)](https://math.nist.gov/MatrixMarket/formats.html)\n   ```\n\t   %%MatrixMarket matrix coordinate real general\n       <number of vertices>  <number of vertices>  <number of edges>\n       <head_1>    <tail_1>    <weight_1> \n       .\n       .\n       .\n       <head_n>    <tail_n>    <weight_n> \n   ```\n\t* [Sample 1](https://www.dropbox.com/s/ztw3vg0roups82q/100.mtx?dl=0) (100 Vertices , 59KB)\n\t* [Sample 2](https://www.dropbox.com/s/skjjvbbzrpvryl4/1000.mtx?dl=0) (1000 Vertices , 1.8MB)\n- Graph Line(.gl)\n\t```\n\t   <head_1> <tail_1>:<weight_1> <tail_2>:<weight_2>  ... <tail_n>:<weight_n>\n\t   <head_2> <tail_1>:<weight_1> <tail_2>:<weight_2>  ... <tail_n>:<weight_n>\n\t   .\n\t   .\n\t   .\n\t   <head_n> <tail_1>:<weight_1> <tail_2>:<weight_2>  ... <tail_n>:<weight_n>\n\t```\n\t* [Sample 1](https://www.dropbox.com/s/obmmb5nw1lca9z3/100.gl?dl=0) (100 Vertices , 17KB)\n\t* [Sample 2](https://www.dropbox.com/s/intufsbudnmfv8m/1000.gl?dl=0) (1000 Vertices , 2.4MB)\n\n- GDF(.gdf)\n\t```\n\t   nodedef>name VARCHAR,label VARCHAR\n       node_1,node_1_label\n       node_2,node_2_label\n       .\n       .\n       .\n       node_n,node_n_label\n       edgedef>node1 VARCHAR,node2 VARCHAR, weight DOUBLE\n       node_1,node_2,weight_1\n       node_1,node_3,weight_2\n       .\n       .\n       .\n       node_n,node_2,weight_n \n\t```\n\t* [Sample 1](https://www.dropbox.com/s/7dqox0f8e1f859s/100.gdf?dl=0) (100 Vertices , 21KB)\n\t* [Sample 2](https://www.dropbox.com/s/xabjzpp0p5sr4b9/1000.gdf?dl=0) (1000 Vertices , 690KB)\n\n- [GML(.gml)](https://en.wikipedia.org/wiki/Graph_Modelling_Language)\n\t```\n       graph\n\t   [\n         multigraph 0\n         directed  0\n         node\n         [\n          id 1\n          label \"Node 1\"\n         ]\n         node\n         [\n          id 2\n          label \"Node 2\"\n         ]\n         .\n         .\n         .\n         node\n         [\n          id n\n          label \"Node n\"\n         ]\n         edge\n         [\n          source 1\n          target 2\n          value W1\n         ]\n         edge\n         [\n          source 2\n          target 4\n          value W2\n         ]\n         .\n         .\n         .\n         edge\n         [\n          source n\n          target r\n          value Wn\n         ]\n       ]\n\t```\n\t* [Sample 1](https://www.dropbox.com/s/g9uvywn1fwt9aq7/100.gml?dl=0) (100 Vertices , 120KB)\n\t* [Sample 2](https://www.dropbox.com/s/5gt5udezy56mlz9/1000.gml?dl=0) (1000 Vertices , 2.4MB)\n\n- [GEXF(.gexf)](https://github.com/gephi/gexf/wiki/Basic-Concepts#network-topology)\n    ```\n        <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n        <gexf xmlns=\"http://www.gexf.net/1.2draft\" version=\"1.2\">\n            <meta lastmodifieddate=\"2009-03-20\">\n                <creator>PyRGG</creator>\n                <description>File Name</description>\n            </meta>\n            <graph defaultedgetype=\"directed\">\n                <nodes>\n                    <node id=\"1\" label=\"Node 1\" />\n                    <node id=\"2\" label=\"Node 2\" />\n                    ...\n                </nodes>\n                <edges>\n                    <edge id=\"1\" source=\"1\" target=\"2\" weight=\"400\" />\n                    ...\n                </edges>\n            </graph>\n        </gexf>\n    ```\n\t* [Sample 1](https://www.dropbox.com/s/kgx8xl9j0dpk4us/100.gexf?dl=0) (100 Vertices , 63KB)\n\t* [Sample 2](https://www.dropbox.com/s/7a380kf35buvusr/1000.gexf?dl=0) (1000 Vertices , 6.4MB)\n\n- [Graphviz(.gv)](https://graphviz.org/doc/info/lang.html)\n    ```\n\t\tgraph example \n\t\t\t{\n\t\t\tnode1 -- node2 [weight=W1];\n\t\t\tnode3 -- node4 [weight=W2];\n\t\t\tnode1 -- node3 [weight=W3];\n\t\t\t.\n\t\t\t.\n\t\t\t.\n\t\t\t}\n    ```\n\t* [Sample 1](https://www.dropbox.com/s/ukev1hi4kguomri/100.gv?dl=0) (100 Vertices , 11KB)\n\t* [Sample 2](https://www.dropbox.com/s/vpvvliz96mdea1p/1000.gv?dl=0) (1000 Vertices , 106KB)\n\t* [Online Visualization](https://dreampuf.github.io/GraphvizOnline/)\n\n- [Pickle(.p)](https://docs.python.org/3.5/library/pickle.html) (Binary Format)\t\n\t* [Sample 1](https://www.dropbox.com/s/4s8zt9i13z39gts/100.p?dl=0) (100 Vertices , 12KB)\n \t* [Sample 2](https://www.dropbox.com/s/fzurqu5au0p1b54/1000.p?dl=0) (1000 Vertices , 340KB)\t\t\n\n\n## Example of Usage\n\n- Generate synthetic data for graph processing frameworks (some of them mentioned here) performance-analysis \t\t\t \n\t- [Medusa](https://github.com/JianlongZhong/Medusa \"Medusa\") \n\t- [Totem](https://github.com/netsyslab/Totem \"Totem\")\n\t- [Frog](https://github.com/AndrewStallman/Frog \"Frog\")\n\t- [CuSha](https://github.com/farkhor/CuSha \"CuSha\")\n- Generate synthetic data for graph benchmark suite like [GAP](https://github.com/sbeamer/gapbs) \n\n## Similar Works\n- [Random Modular Network Generator](https://github.com/prathasah/random-modular-network-generator) Generates random graphs with tunable strength of community structure\n- [randomGraph](https://github.com/sdghafouri/randomGraph) very simple random graph generator in MATLAB\n- [Graph1](https://github.com/Saptaparni/Graph1) Random Graph Generator with Max capacity paths (C++)\n\n\n## Issues & Bug Reports\t\t\t\n\nJust fill an issue and describe it. We'll check it ASAP!\t\t\t\t\t\t\t\nor send an email to [info@pyrgg.ir](mailto:info@pyrgg.ir \"info@pyrgg.ir\"). \n\nYou can also join our discord server\t\t\t\n\n<a href=\"https://discord.gg/dfYAWVMaCW\">\n  <img src=\"https://img.shields.io/discord/1013411447130308669.svg?style=for-the-badge\" alt=\"Discord Channel\">\n</a>\n\n\n## Citing\n\nIf you use pyrgg in your research, please cite the [JOSS paper](http://joss.theoj.org/papers/da33f691984d9a35f66ff93a391bbc26 \"Pyrgg JOSS Paper\") ;-)\n\n<pre>\n@article{Haghighi2017,\n  doi = {10.21105/joss.00331},\n  url = {https://doi.org/10.21105/joss.00331},\n  year  = {2017},\n  month = {sep},\n  publisher = {The Open Journal},\n  volume = {2},\n  number = {17},\n  author = {Sepand Haghighi},\n  title = {Pyrgg: Python Random Graph Generator},\n  journal = {The Journal of Open Source Software}\n}\n</pre>\n\n<table>\n\t<tr> \n\t\t<td align=\"center\">JOSS</td>\n\t\t<td align=\"center\"><a href=\"http://joss.theoj.org/papers/da33f691984d9a35f66ff93a391bbc26\"><img src=\"http://joss.theoj.org/papers/da33f691984d9a35f66ff93a391bbc26/status.svg\"></a></td>\t\n\t</tr>\n\t<tr>\n\t\t<td align=\"center\">Zenodo</td>\n\t\t<td align=\"center\"><a href=\"https://zenodo.org/badge/latestdoi/89410101\"><img src=\"https://zenodo.org/badge/89410101.svg\" alt=\"DOI\"></a></td>\n\t</tr>\n</table>\n \t\t\t\n\n## References\n\t\t\t\t\t\n\n<blockquote>1- <a href=\"http://www.diag.uniroma1.it/challenge9/format.shtml\">9th DIMACS Implementation Challenge - Shortest Paths</a> </blockquote>\n\n<blockquote>2- <a href=\"http://www.cs.cmu.edu/~pbbs/benchmarks/graphIO.html\">Problem Based Benchmark Suite</a></blockquote>\n\n<blockquote>3- <a href=\"https://www.mat.unical.it/aspcomp2013/MaximalClique\">MaximalClique - ASP Competition 2013</a></blockquote>\n\n<blockquote>4- Pitas, Ioannis, ed. Graph-based social media analysis. Vol. 39. CRC Press, 2016. </blockquote>\t\n\n<blockquote>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. </blockquote>\t\n\n<blockquote>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). </blockquote>\n\n<blockquote>7- <a href=\"https://math.nist.gov/MatrixMarket/formats.html\">Matrix Market: File Formats</a> </blockquote>\t\t\n\n<blockquote>8- <a href=\"https://socnetv.org/docs/formats.html#GML\">Social Network Visualizer</a> </blockquote>\n\n<blockquote>9- Adar, Eytan. \"GUESS: a language and interface for graph exploration.\" Proceedings of the SIGCHI conference on Human Factors in computing systems. 2006. </blockquote>\n\n<blockquote>10- Skiena, Steven S. The algorithm design manual. Springer International Publishing, 2020. </blockquote>\n\n<blockquote>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. </blockquote>\n\n<blockquote>12- Zhong, Jianlong, and Bingsheng He. \"An overview of medusa: simplified graph processing on gpus.\" ACM SIGPLAN Notices 47.8 (2012): 283-284.</blockquote>\n\n<blockquote>13- Ellson, John, et al. \"Graphviz and dynagraph\u2014static and dynamic graph drawing tools.\" Graph drawing software. Springer, Berlin, Heidelberg, 2004. 127-148.</blockquote>\n\n\n* Logo designed by [Zahra Mobasher](https://www.instagram.com/littleblackoyster)\t\n\t\t\t\t\t\n \n## Show Your Support\n\t\t\t\t\t\t\t\t\n<h3>Star This Repo</h3>\t\t\t\t\t\n\nGive a \u2b50\ufe0f if this project helped you!\n\n<h3>Donate to Our Project</h3>\t\n\n<h4>Bitcoin</h4>\n1KtNLEEeUbTEK9PdN6Ya3ZAKXaqoKUuxCy\n<h4>Ethereum</h4>\n0xcD4Db18B6664A9662123D4307B074aE968535388\n<h4>Litecoin</h4>\nLdnz5gMcEeV8BAdsyf8FstWDC6uyYR6pgZ\n<h4>Doge</h4>\nDDUnKpFQbBqLpFVZ9DfuVysBdr249HxVDh\n<h4>Tron</h4>\nTCZxzPZLcJHr2qR3uPUB1tXB6L3FDSSAx7\n<h4>Ripple</h4>\nrN7ZuRG7HDGHR5nof8nu5LrsbmSB61V1qq\n<h4>Binance Coin</h4>\nbnb1zglwcf0ac3d0s2f6ck5kgwvcru4tlctt4p5qef\n<h4>Tether</h4>\n0xcD4Db18B6664A9662123D4307B074aE968535388\n<h4>Dash</h4>\nXd3Yn2qZJ7VE8nbKw2fS98aLxR5M6WUU3s\n<h4>Stellar</h4>\t\t\nGALPOLPISRHIYHLQER2TLJRGUSZH52RYDK6C3HIU4PSMNAV65Q36EGNL\n<h4>Zilliqa</h4>\nzil1knmz8zj88cf0exr2ry7nav9elehxfcgqu3c5e5\n<h4>Coffeete</h4>\n<a href=\"http://www.coffeete.ir/opensource\">\n<img src=\"http://www.coffeete.ir/images/buttons/lemonchiffon.png\" style=\"width:260px;\" />\n</a>\n\n\n# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)\nand this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).\n\n## [Unreleased]\n## [1.4] - 2023-07-06\n### Added\n- `check_for_config` function\n- `load_config` function\n- `save_config` function\n### Changed\n- `README.md` modified\n- Logo changed\n- `codecov` removed from `dev-requirements.txt`\n- Test system modified\n- Error messages updated\n## [1.3] - 2022-11-30\n### Added\n- Graphviz(DOT) format\n### Changed\n- [asciinema](https://asciinema.org) instruction video updated\n- Test system modified\n- `README.md` modified\n- `Python 3.11` added to `test.yml`\n- CLI mode updated\n- `dev-requirements.txt` updated\n- To-do list moved to `TODO.md`\n## [1.2] - 2022-09-07\n### Added\n- Anaconda workflow\n- Discord badge\n### Changed\n- Menu optimized\n- Docstrings modified\n- `branch_gen` function modified\n- `edge_gen` function modified\n- `precision` and `min_edge` parameters added to `branch_gen` function\n- `random_edge` parameter removed from `branch_gen` function\n- Test system modified\n- `AUTHORS.md` updated\n- License updated\n- `README.md` modified\n- `Python 3.10` added to `test.yml`\n### Removed\n- `sign_gen` function\n- `random_edge_limits` function\n## [1.1] - 2021-06-09\n### Added\n- `requirements-splitter.py`\n- `is_weighted` function\n- `_write_properties_to_json` function\n- `PYRGG_TEST_MODE` parameter\n### Changed\n- Test system modified\n- JSON, YAML and Pickle formats value changed from `string` to `number`\n- `properties` section added to JSON, YAML and Pickle formats\n- `_write_to_json` function renamed to `_write_data_to_json`\n- `logger` function modified\n- `time_convert` function modified\n- `branch_gen` function modified\n- References updated\n## [1.0] - 2021-01-11\n### Added\n- Number of files option\n### Changed\n- All flags type changed to `bool`\n- Menu optimized\n- The `logger` function enhanced.\n- Time format in the `logger` changed to `%Y-%m-%d %H:%M:%S`\n- `dl_maker` function modified\n- `tgf_maker` function modified\n- `gdf_maker` function modified\n- `run` function modified\n## [0.9] - 2020-10-07\n### Added\n- GEXF format\n- Float weight support\n- `tox.ini`\n### Changed\n- Menu optimized\n- `pyrgg.py` renamed to `graph_gen.py`\n- Other functions moved to `functions.py`\n- Test system modified\n- `params.py` refactored\n- `graph_gen.py` refactored\n- `functions.py` refactored\n- `weight_str_to_number` function renamed to `convert_str_to_number`\n- `branch_gen` function bugs fixed\n- `input_filter` function bug fixed\n- `gl_maker` function bug fixed\n- `CONTRIBUTING.md` updated\n- `AUTHORS.md` updated\n### Removed\n- `print_test` function\n- `left_justify` function\n- `justify` function\n- `zero_insert` function\n## [0.8] - 2020-08-19\n### Added\n- GDF format\n- GML format\n### Changed\n- CLI snapshots updated\n- `AUTHORS.md` updated\n## [0.7] - 2020-08-07\n### Added\n- Graph Line format\n### Changed\n- Menu optimized\n## [0.6] - 2020-07-24\n### Added\n- Matrix Market format\n### Changed\n- `json_maker` function optimized\n- `dl_maker` function optimized\n- `tgf_maker` function optimized\n- `lp_maker` function optimized\n## [0.5] - 2020-07-01\n### Added\n- TSV format\n- Multigraph control\n### Changed\n- `branch_gen` function modified\n- Website changed to [https://www.pyrgg.ir](https://www.pyrgg.ir)\n## [0.4] - 2020-06-17\n### Added\n- Self loop control\n- Github action\n### Changed\n- `appveyor.yml` updated\n## [0.3] - 2019-11-29\n### Added\n- `__version__` variable\n- `CHANGELOG.md`\n- `dev-requirements.txt`\n- `requirements.txt`\n- `CODE_OF_CONDUCT.md`\n- `ISSUE_TEMPLATE.md`\n- `PULL_REQUEST_TEMPLATE.md`\n- `CONTRIBUTING.md`\n- `version_check.py`\n- `pyrgg_profile.py`\n- Unweighted graph\n- Undirected graph\n- Exe version\n### Changed\n- Test system modified\n- `README.md` modified\n- Docstrings modified\n- `get_input` function modified\n- `edge_gen` function modified\n- Parameters moved to `params.py`\n\n## [0.2] - 2017-09-20\n### Added\n- CSV format\n- YAML format\n- Weighted edge list format (WEL)\n- ASP format\n- Trivial graph format (TGF)\n- UCINET DL format\n- Pickle format\n\n## [0.1] - 2017-08-19\n### Added\n- DIMACS format\n- JSON format\n- README\n\n[Unreleased]: https://github.com/sepandhaghighi/pyrgg/compare/v1.4...dev\n[1.4]: https://github.com/sepandhaghighi/pyrgg/compare/v1.3...v1.4\n[1.3]: https://github.com/sepandhaghighi/pyrgg/compare/v1.2...v1.3\n[1.2]: https://github.com/sepandhaghighi/pyrgg/compare/v1.1...v1.2\n[1.1]: https://github.com/sepandhaghighi/pyrgg/compare/v1.0...v1.1\n[1.0]: https://github.com/sepandhaghighi/pyrgg/compare/v0.9...v1.0\n[0.9]: https://github.com/sepandhaghighi/pyrgg/compare/v0.8...v0.9\n[0.8]: https://github.com/sepandhaghighi/pyrgg/compare/v0.7...v0.8\n[0.7]: https://github.com/sepandhaghighi/pyrgg/compare/v0.6...v0.7\n[0.6]: https://github.com/sepandhaghighi/pyrgg/compare/v0.5...v0.6\n[0.5]: https://github.com/sepandhaghighi/pyrgg/compare/v0.4...v0.5\n[0.4]: https://github.com/sepandhaghighi/pyrgg/compare/v0.3...v0.4\n[0.3]: https://github.com/sepandhaghighi/pyrgg/compare/v0.2...v0.3\n[0.2]: https://github.com/sepandhaghighi/pyrgg/compare/v0.1...v0.2\n[0.1]: https://github.com/sepandhaghighi/pyrgg/compare/1e238cd...v0.1\n\n\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Python Random Graph Generator",
    "version": "1.4",
    "project_urls": {
        "Download": "https://github.com/sepandhaghighi/pyrgg/tarball/v1.4",
        "Homepage": "https://github.com/sepandhaghighi/pyrgg",
        "Source": "https://github.com/sepandhaghighi/pyrgg",
        "Webpage": "https://www.pyrgg.ir"
    },
    "split_keywords": [
        "random",
        "graph",
        "python3",
        "python",
        "generator",
        "graph-process",
        "generator",
        "dimacs",
        "json",
        "yaml",
        "pickle",
        "csv",
        "tsv",
        "wel",
        "asp",
        "tgf",
        "ucinet"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "136ca9a24f9f561bfe76b821f932eb707d5d5922fbf1e7e14735fcbb43dad7eb",
                "md5": "9b7c49853217fe9a5358f8a29498ae1f",
                "sha256": "fcead65e709a7ce66a7438f79b8018b71c907f43c79a423a58327578662840f3"
            },
            "downloads": -1,
            "filename": "pyrgg-1.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "9b7c49853217fe9a5358f8a29498ae1f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.5",
            "size": 28365,
            "upload_time": "2023-07-06T18:56:57",
            "upload_time_iso_8601": "2023-07-06T18:56:57.743460Z",
            "url": "https://files.pythonhosted.org/packages/13/6c/a9a24f9f561bfe76b821f932eb707d5d5922fbf1e7e14735fcbb43dad7eb/pyrgg-1.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0aacbb1f48af14b17a18ad78abd44ada336a75729c2eb45e9d6a5db43f5ef86a",
                "md5": "ba414d0a12145b771d1f60906bd47307",
                "sha256": "b2c4b1dba4ea8730445d33e2001ee3524a76948d6753b5b4d4c239563e3705ec"
            },
            "downloads": -1,
            "filename": "pyrgg-1.4.tar.gz",
            "has_sig": false,
            "md5_digest": "ba414d0a12145b771d1f60906bd47307",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.5",
            "size": 237950,
            "upload_time": "2023-07-06T18:56:56",
            "upload_time_iso_8601": "2023-07-06T18:56:56.081275Z",
            "url": "https://files.pythonhosted.org/packages/0a/ac/bb1f48af14b17a18ad78abd44ada336a75729c2eb45e9d6a5db43f5ef86a/pyrgg-1.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-07-06 18:56:56",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "sepandhaghighi",
    "github_project": "pyrgg",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "requirements": [],
    "tox": true,
    "lcname": "pyrgg"
}
        
Elapsed time: 0.08632s