Saravanan666/pypi-org huggingface dataset:
Package: pycircuit
# Circuit Description Library## Getting started`joule_thief.py````pythonfrom pycircuit.circuit import *from pycircuit.library import *Device('BAT0805', 'BAT', '0805',Map('1', '+'),Map('2', '-'))Package('TDK ACT45B', RectCrtyd(5.9, 3.4), DualPads(4, 2.5, radius=2.275),package_size=(5.9, 3.4), pad_size=(0.9, 1.35))Device('TDK ACT45B', 'Transformer_1P_1S', 'TDK ACT45B',Map('1', 'L1.1'), Map('2', 'L2.1'), Map('3', 'L2.2'), Map('4', 'L1.2'))@circuit('TOP')def top():vcc, gnd, n1, n2, n3 = nets('VCC GND n1 n2 n3')with Inst('TR1', 'Transformer_1P_1S') as tr1:tr1['L1', 'L1'] = n1, n2tr1['L2', 'L2'] = vcc, n3Inst('BAT1', 'BAT')['+', '-'] = vcc, gndInst('R1', 'R', '10k 0805')['~', '~'] = vcc, n1Inst('Q1', 'Q', 'npn sot23')['B', 'C', 'E'] = n2, n3, gndInst('LED1', 'D', 'led red 0805')['A', 'C'] = n3, gnd````build.py````pythonimport joule_thieffrom pycircuit.build import Builderfrom pycircuit.compiler import Compilerfrom pycircuit.library.design_rules import oshpark_4layerfrom placer import Placerfrom router import Routerfrom pykicad.pcb import Zonedef compile(filein, fileout):compiler = Compiler()compiler.compile(filein, fileout)def place(filein, fileout):placer = Placer()placer.place(filein, fileout)def route(filein, fileout):router = Router()router.route(filein, fileout)def post_process(pcb, kpcb):xmin, ymin, xmax, ymax = pcb.boundary()coords = [(xmin, ymin), (xmin, ymax), (xmax, ymax), (xmax, ymin)]zone = Zone(net_name='GND', layer='F.Cu',polygon=coords, clearance=0.3)kpcb.zones.append(zone)return kpcbif __name__ == '__main__':Builder('joule_thief', joule_thief.top, oshpark_4layer,compile, place, route, post_process).build()````Makefile````makePYCIRCUIT = ../..build:python3 build.pyview:node $(PYCIRCUIT)/viewer/app.js 3000 net.dot.svg pcb.svgkicad:pcbnew *.kicad_pcb &>/dev/null &clean:rm -f *.net *.hash *.dot *.svg *.place *.route *.pro *.kicad_pcb.PHONY: build view kicad clean```![Viewer](https://user-images.githubusercontent.com/741807/34364054-39b1362e-ea82-11e7-94b7-baf712e1aeab.png)![KiCad](https://user-images.githubusercontent.com/741807/34364057-43e7ee62-ea82-11e7-9787-84fefaecbc49.png)# LicenseISC LicenseCopyright (c) 2017, David CravenPermission to use, copy, modify, and/or distribute this software for anypurpose with or without fee is hereby granted, provided that the abovecopyright notice and this permission notice appear in all copies.THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITHREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITYAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROMLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCEOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE ORPERFORMANCE OF THIS SOFTWARE.
Package: pycircular
PyCircularpycircular is a Python module for circular data analysis
built on top ofScikit-Learn,SciPyand distributed under the 3-Clause BSD license.In particular, it provides:A set of circular analysis algorithmsDifferent real-world datasets.InstallationYou can installpycircularwithpip:# pip install pycircularDocumentationDocumentation is available athttp://albahnsen.github.io/pycircularTutorials are available athttp://albahnsen.github.io/pycircular/Tutorials.htmlContributionsAll source code is hosted onGitHub.Contributions are welcome. There are a number ofIssuesthat can be worked on.Developers who have made significant contributions,NameIDNotesAlejandro Correa Bahnsengithublinkedinprimary maintainerJaime AcevedogithublinkedinSergio VillegasgithublinkedinJuan SalcedoJesus SolanoLICENCEOpen Source (OSI approved):Citation information:
Package: pycircularbuffer
License : MITSummarySimplecircular bufferwritten in python extension.CircularBuffer will allocate requested size + 2 bytes for two sections of null
terminated strings.May temporary allocate another half of the allocated bytes if you used buffer
protocol, I mostly used them for regex.InstallationSimplypip install pycircularbuffer, compilation from downloaded source
is probably needed.UsingfromcircularbufferimportCircularBufferbuf=CircularBuffer(1024)buf.write(b'some text')whilelen(buf)>0:buf.read(1)fromreimportmatchbuf.write(b'hallo')# python2withbuf:match_found=match(br'^ha',buf)# python3match_found=match(br'^ha',buf)# use `result` immediately because regex didn't make memory copy of the# internal buffer, or run another `match()` on a memory copy, for example:match_found_str=buf.read(len(match_found.group(0)))independent_match_found=match(br'^ha',match_found_str)WarningDon’t to this in python 3:‘a’ in buf, instead:b’a’ in buf.Check the return value of write() which is the actual length that was written
into the buffer and also the exception that might be raised.APIRegular methods:clear()read()resize()write()write_available()make_contiguous()String methods:count()startswith()find()index()Sequence methods:__contains__()__getitem__()__len__()__setitem__()Magic methods:__repr__()__str__()Note: while string representation makes thing easier it always creates
memory copy.__enter__()__exit__()Buffer protocol:Note: for python version < 3, you need to use context manager, thewithstatement, to let CircularBuffer know when you are releasing the buffer.Using buffer protocol will throwReservedErrorexception forCircularBuffer.read().
Package: pyciscospa
A library to interact with the SPA112 ATA to gather phone line status details and reboot the device remotely.Command Line UsageInstall PyCiscoSPA.pipinstallpyciscospaGet the status of the connected phone lines (default admin/admin)pyciscospa--host192.168.1.20pyciscospa--host192.168.1.20-uadmin-padminReboot the ATApyciscospa--host192.168.1.20--rebootpyciscospa--host192.168.1.20-uadmin-padmin--rebootModule UsageGet phone lines statusfrompyciscospaimportCiscoClientclient=CiscoClient(192.168.1.20)phone_lines=client.phones()Reboot the ATAfrompyciscospaimportCiscoClientclient=CiscoClient(192.168.1.20)client.reboot()
Package: pyciss
IndexTools to retrieve the PDS index for Cassini ISS image data.df=ring_summary_index()Stored index is up-to-date.df.head()<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}</style>VOLUME_IDFILE_SPECIFICATION_NAMEOPUS_IDMINIMUM_RIGHT_ASCENSIONMAXIMUM_RIGHT_ASCENSIONMINIMUM_DECLINATIONMAXIMUM_DECLINATIONMINIMUM_RING_RADIUSMAXIMUM_RING_RADIUSFINEST_RING_INTERCEPT_RESOLUTION...RING_CENTER_DISTANCESUB_SOLAR_RING_LONGITUDESUB_OBSERVER_RING_LONGITUDERING_CENTER_PHASE_ANGLERING_CENTER_INCIDENCE_ANGLERING_CENTER_NORTH_BASED_INCIDENCE_ANGLERING_CENTER_EMISSION_ANGLERING_CENTER_NORTH_BASED_EMISSION_ANGLESOLAR_RING_OPENING_ANGLEOBSERVER_RING_OPENING_ANGLE0COISS_2001data/1454725799_1455008789/N1454725799_1.LBLco-iss-n145472579935.52839835.9055559.71963710.091212205899.3351098621.586419.0137...70874998.947284.523215.95164.0764.589115.41173.676106.324-25.411-16.3241COISS_2001data/1454725799_1455008789/N1454726579_1.LBLco-iss-n145472657936.66289837.0390389.5901149.960833721136.1551745689.307421.97145...70870851.371284.524215.95164.0764.589115.41173.676106.324-25.411-16.3242COISS_2001data/1454725799_1455008789/N1454727359_1.LBLco-iss-n145472735936.92806637.3043349.87959310.250111042341.4382186830.92414.79041...70866703.094284.524215.95164.07164.589115.41173.676106.324-25.411-16.3243COISS_2001data/1454725799_1455008789/N1454728139_1.LBLco-iss-n145472813928.1004228.4796186.2247096.601574<NA><NA><NA>...70862557.207284.524215.95164.07164.589115.41173.676106.324-25.411-16.3244COISS_2001data/1454725799_1455008789/N1454728919_1.LBLco-iss-n145472891937.98141838.35779110.61194710.9816973865717.5893905151.343405.91234...70858406.794284.525215.95164.07164.589115.41173.676106.324-25.411-16.3245 rows × 59 columnsclearnacs=get_clearnacs_ring_images()clearnacs.info()Stored index is up-to-date.
'isotime' column does not exist. Leaving index as it is.
<class 'pandas.core.frame.DataFrame'>
Int64Index: 13406 entries, 2321 to 100442
Columns: 140 entries, FILE_NAME to STANDARD_DATA_PRODUCT_ID
dtypes: Float64(68), Int64(22), datetime64[ns](7), string(43)
memory usage: 15.6 MBfilter_for_ringspan(clearnacs,500).info()<class 'pandas.core.frame.DataFrame'>
Int64Index: 44 entries, 13326 to 13370
Columns: 140 entries, FILE_NAME to STANDARD_DATA_PRODUCT_ID
dtypes: Float64(68), Int64(22), datetime64[ns](7), string(43)
memory usage: 52.3 KB
Package: pycistem
pycistemPython scripts inteacting with the cisTEM packageUsageimportasynciofrompycistem.programs.refine\_templateimportRefineTemplateParameters,runparams=RefineTemplateParameters(input\_file="test.mrc",template="ribo.mrc")results=asyncio.run(run(params))frompycistem.coreimport*importmatplotlib.pyplotaspltim=Image()spectrum=Image()im.QuickAndDirtyReadSlice("test.mrc",1)spectrum.AllocateSameAs(im)im.ForwardFFT(True)im.AmplitudeSpectrumFull2D(spectrum)plt.imshow(spectrum)
Package: pycit
pycitFramework for independence testing and conditional independence testing, with multiprocessing. Currently uses mutual information (MI) and conditional mutual information (CMI) as test statistics, estimated using k-NN methods. Also supports a routine for Markov blanket feature selection. Reports permutation-based p-values.InstallationpipinstallpycitAvailable Test Statistic EstimatorsMutual Information Estimatorsksg_mi: k-NN estimator for continuous databi_ksg_mi: "bias-improved" k-NN estimator for continuous datamixed_mi: k-NN estimator for discrete-continuous mixturesConditional Mutual Information Estimatorsksg_cmi: k-NN estimator for continuous databi_ksg_cmi: "bias-improved" k-NN estimator for continuous datamixed_cmi: k-NN estimator for discrete-continuous mixturesNote: Also includes a differential entropy estimator:kl_entropy.Example UsageIndependence Testingfrompycitimportitest# Test whether or not x and y are independentpval=itest(x,y,test_args={'statistic':'ksg_mi','n_jobs':2})is_independent=(pval>=1.-confidence_level)Conditional Independence Testingfrompycitimportcitest# Test whether or not x and y are conditionally independent given zpval=citest(x,y,z,test_args={'statistic':'ksg_mi','n_jobs':2})is_conditionally_independent=(pval>=1.-confidence_level)Markov Blanket Feature Selectionfrompycit.markov_blanketimportMarkovBlanket# specify CI test configurationcit_funcs={'it_args':{'test_args':{'statistic':'ksg_mi','n_jobs':2}},'cit_args':{'test_args':{'statistic':'ksg_cmi','n_jobs':2}}}# find Markov blanket of Y. x_data contains data from predictor variables, X_1,...,X_mmb=MarkovBlanket(x_data,y_data,cit_funcs)markov_blanket=mb.find_markov_blanket()Dependencies:numpyscipyscikit-learnReferences:Kozachenko, L. and Leonenko, N. (1987). Sample estimate of the entropy of a random vector. Problemy Peredachi Informatsii, 23(2):9–16.Kraskov, A., Stögbauer, H., and Grassberger, P. (2004). Estimating mutual information. Physical Review E, 69(6):066138.Frenzel, S. and Pompe, B. (2007). Partial mutual information for coupling analysis of multivariate time series. Physical Review Letters, 99(20):204101.Gao, W., Kannan, S., Oh, S., and Viswanath, P. (2017). Estimating mutual information for discrete-continuous mixtures. In NIPS'2017.Gao, W., Oh, S., and Viswanath, P. (2018). Demystifying fixed k-nearest neighbor information estimators. IEEE Transactions on Information Theory, 64(8):5629–5661.Runge, J. (2018). Conditional independence testing based on a nearest-neighbor estimator of conditional mutual information. In AISTATS'18.Yang, A., Ghassami, A., Raginsky, M., Kiyavash, N., and Rosenbaum, E. (2020). Model-Augmented Estimation of Conditional Mutual Information for Feature Selection. In UAI'2020.
Package: pycite
pycite: Python Citations Generatorpyciteis a simple to usepythoncitations generator.Supported Reference StylesHarvardSupported Paper SourcesNCBIPubmedScienceDirectJSTOR (Support dropped on 5th November 2021Why? Uses dynamic JS that we do not want to work with for now.)Supported file formatspycitegenerates citations given a file of the following types:Text files (.txt)InstallationThe simplest way to install the latest release is as follows:pipinstallpyciteTo install the development version:Open the Terminal/CMD/Git bash/shell and enterpipinstallgit+https://github.com/Nelson-Gon/pycite.git# or for the less stable dev versionpipinstallgit+https://github.com/Nelson-Gon/pycite.git@devOtherwise:# clone the repogitclonegit@github.com:Nelson-Gon/pycite.gitcdpycite
python3setup.pyinstallUsageScript ModeTo use at the command line, please use:python-mpycite-itestfiles/testlinks.txt-otestfiles/citations.txtTo get help:python-mpycite--help#usage: __main__.py [-h] -i INPUT_FILE -o OUTPUT_FILE##optional arguments:#  -h, --help            show this help message and exit#  -i INPUT_FILE, --input-file INPUT_FILE#                        Path to an input file#  -o OUTPUT_FILE, --output-file OUTPUT_FILE#                        Path to an output fileProgramming ModeFirst, one needs to create an object of classPyCitefrompycite.pyciteimportPyCite# Need an input-output file pairmy_citations=PyCite(input_file="testfiles/testlinks.txt",output_file="testfiles/citations.txt")To generate citations, one simply calls thecitemethod.# This will write citations in the provided output filemy_citations.cite()The above creates citations as required (only the first line shown here).
Seecitations.txtfor the full file.PohorilleA,WilsonMA,&ShannonG(2017)FlexibleProteinsattheOriginofLifeLife(Basel),7(2),23.[Accessed16/Sep/2021]Notepyciteis free software that the author hopes could be of use to someone else and enable them to perform reproducible
science.If you have any concerns, especially regarding the papers used to test that the software works,
pleasecontactthe author. In the event that you notice that any of the papers used in the tests has been retracted, please immediately inform the author to remove that paper.Thank you very much and keep building,For Science!To report any issues, suggestions or improvement, please do so
atissues.“Before software can be reusable it first has to be usable.” – Ralph Johnson
Package: pycites
pycitespycitesis a package to download and interact with theCITES Trade Databaseusing Python.citesdbexists for R users to load and analzyes this data, so we wanted a way to do the same!Currently very much a work in progress.  Currently only downloads and loads data.Installationpip install pycitesUsage instructionsTo download the CITES Trade Database and load into a dataframe, run the following in a Jupyter notebook or Python shell:importpycitespycites.get_data()df=pycites.load_data()This will download and extract the zip file from the CITES website, do some basic data validation (e.g. drop rows with missing or incorrect Years), and combine the data into a single compressed CSV file.  This uses a decent amount of memory, so may cause issues on a machines with low resource.RoadmapRelease a CSV to make it easier for users to download and load dataExperiement with other data formats for better memory usage of data (currently pretty high)Add a CLI for downloading dataInclude metadata and other useful information, likecitesdbAdd additional functionality for analysis (time series and network analyses), and integrate with other data sources (such as World Bank)Setup CI and testing
Package: pycities
PycitiesA lightweight city local database library in Python with multilanguage support.
All data is obtained fromgeonames.org.Pure Python with built-insqlite3module, no additional requirements.RequirementsPython >= 3.7SQLite3 >= 3.3.3 (Versions below 3.3.3 are unstable)Installationpip install pycitiesUsage# -*- coding: utf-8 -*-fromdataclassesimportdataclassfrompycitiesimportRowFactoryModelConfig,CityDatabase,dict_factory# You can define your own custom model or use existed ones for: tuple, dict, list, sqlite3.Row@dataclass(frozen=True)classCity:id:intname:stradministrative_name:strcountry_name:strlongitude:strlatitude:str# Create row factory for your custom modeldefcity_factory(cursor,row)->City:returnCity(**dict_factory(cursor,row))# Set your factory config for your custom modelRowFactoryModelConfig.set(City,city_factory)# Create new instance with our model.# You can define fields that you want to fetch in SELECT queries.# All supported fields can be found in `pycities.config.CITY_ALL_FIELDS`db=CityDatabase[City](fetch_fields=("id","name","administrative_name","country_name","longitude","latitude"))# Connect to datasourcedb.connect()print(db.supported_languages)# >>> ('uk', 'pl', 'en', 'ru')print(db.search(query="Wroclaw",lang="pl",limit=1))# >>> [City(id=3081368, name='Wrocław', administrative_name='Województwo dolnośląskie', country_name='Polska', longitude=17.03333, latitude=51.1)]print(db.search(query="Breslau",lang="en",limit=1))# >>> [City(id=3081368, name='Wroclaw', administrative_name='Lower Silesian Voivodeship', country_name='Poland', longitude=17.03333, latitude=51.1)]forlangindb.supported_languages:print(db.get_city(5128581,lang=lang))# >>> City(id=5128581, name='Нью-Йорк', administrative_name='Нью-Йорк', country_name='США', longitude=-74.00597, latitude=40.71427)# >>> City(id=5128581, name='Nowy Jork', administrative_name='Nowy Jork', country_name='USA', longitude=-74.00597, latitude=40.71427)# >>> City(id=5128581, name='New York', administrative_name='New York', country_name='United States', longitude=-74.00597, latitude=40.71427)# >>> City(id=5128581, name='Нью-Йорк', administrative_name='Нью-Йорк', country_name='США', longitude=-74.00597, latitude=40.71427)forcityindb.get_nearest(latitude=43.313,longitude=-31.123,limit=3):print(city)# >>> City(id=6941014, name='Ponta Delgada', administrative_name='Azores', country_name='Portugal', longitude=-25.66874, latitude=37.73952)# >>> City(id=2270380, name='Câmara de Lobos', administrative_name='Madeira', country_name='Portugal', longitude=-16.97718, latitude=32.65043)# >>> City(id=2267827, name='Funchal', administrative_name='Madeira', country_name='Portugal', longitude=-16.92547, latitude=32.66568)db.close()ContributingFeel free to contribute to this project. You can suggest your changes, fixes, upgrades and etc. Contact me bykliuchkovladyslav@gmail.com.
Package: pyCitizenBand
pyCitizenBandA tool for Citizen Band (CB)UsageRun IPythonIPython is also called Jupyter.It’s available athttp://ipython.org/$ ipythonImportCitizenBandIn [1]: from pyCitizenBand import CitizenBandInstantiateCitizenBandIn [2]: cb = CitizenBand()Display frequenciesIn [3]: cb.frequencies
        -2      -1       0       1       2
1   26.065  26.515  26.965  27.415  27.865
2   26.075  26.525  26.975  27.425  27.875
3   26.085  26.535  26.985  27.435  27.885
4   26.105  26.555  27.005  27.455  27.905
5   26.115  26.565  27.015  27.465  27.915
6   26.125  26.575  27.025  27.475  27.925
7   26.135  26.585  27.035  27.485  27.935
8   26.155  26.605  27.055  27.505  27.955
9   26.165  26.615  27.065  27.515  27.965
10  26.175  26.625  27.075  27.525  27.975
11  26.185  26.635  27.085  27.535  27.985
12  26.205  26.655  27.105  27.555     NaN
13  26.215  26.665  27.115  27.565     NaN
14  26.225  26.675  27.125  27.575     NaN
15  26.235  26.685  27.135  27.585     NaN
16  26.255  26.705  27.155  27.605     NaN
17  26.265  26.715  27.165  27.615     NaN
18  26.275  26.725  27.175  27.625     NaN
19  26.285  26.735  27.185  27.635     NaN
20  26.305  26.755  27.205  27.655     NaN
21  26.315  26.765  27.215  27.665     NaN
22  26.325  26.775  27.225  27.675     NaN
23  26.355  26.805  27.255  27.705     NaN
24  26.335  26.785  27.235  27.685     NaN
25  26.345  26.795  27.245  27.695     NaN
26  26.365  26.815  27.265  27.715     NaN
27  26.375  26.825  27.275  27.725     NaN
28  26.385  26.835  27.285  27.735     NaN
29  26.395  26.845  27.295  27.745     NaN
30  26.405  26.855  27.305  27.755     NaN
31  26.415  26.865  27.315  27.765     NaN
32  26.425  26.875  27.325  27.775     NaN
33  26.435  26.885  27.335  27.785     NaN
34  26.445  26.895  27.345  27.795     NaN
35  26.455  26.905  27.355  27.805     NaN
36  26.465  26.915  27.365  27.815     NaN
37  26.475  26.925  27.375  27.825     NaN
38  26.485  26.935  27.385  27.835     NaN
39  26.495  26.945  27.395  27.845     NaN
40  26.505  26.955  27.405  27.855     NaNConvert channel to frequencyIn [5]: cb.frequency(19)
Out[5]: Decimal('27.185')

In [6]: cb.frequency(19, 1)
Out[6]: Decimal('27.635')Convert frequency to channelIn [7]: cb.channel(26.735)
Out[7]: (19, -1, Decimal('0.000'))Install$ pip install pyCitizenBandA scientific distribution of Python such as Anaconda Python is highly
suggested.https://www.continuum.io/downloadsDevelopmentYou can help to develop this library.IssuesYou can submit issues usinghttps://github.com/scls19fr/pyCitizenBand/issuesCloneYou can clone repository to try to fix issues yourself using:$ git clone https://github.com/scls19fr/pyCitizenBand.gitRun unit testsRun all unit tests$ nosetests -s -v --with-doctestInstall development version$ python setup.py installor$ sudo pip install git+https://github.com/scls19fr/pyCitizenBand.gitCollaboratingFork repositoryCreate a branch which fix a given issueSubmit pull requestshttps://help.github.com/categories/collaborating/
Package: py-citus-loader
# Citus loaderCitus loader is a tool that will allow you to do dump and restore on citus formations.Here is how it works:## citus-dumpThe command citus-dump will:Do a schema dump of your formationCreate a file with the distribute statementsTake a pg_dump of each of your nodes and coordinator.Here are the options you can configure:host: should the the host of your initial formationdb: database you want to dumpport: default 5432pwd: passwordpg_dump: if necessary, the path to the pg_dump you want to usepg_dump_jobs: value of the –jobs argument in pg_dumpparallel_tasks: number of pg_dump tasks running in paralleldump_schema: default True, take a pg_dump of the schemadump_data: default True, take a pg_dump of the dataignore_write_locks: by default, citus-dump will try to lock the tables to ensure that before running pg_dump, no insert/update/delete statement is running on the workers.config_file: path to your yaml file with the configuration for the citus-dump commandWe strongly recommend using a yaml configurattion file. You can find an example in tests/configuration.yml## citus-restoreOn your destination formation, citus-restore will:Restore the schemaDistribute the tablesRestore the shards to their appropriate worker.host: should the the host of your destination formationdb: database you want to reestoreport: default 5432pwd: passwordpg_restore: if necessary, the path to the pg_dump you want to usepg_restore_jobs: value of the –jobs argument in pg_restoreparallel_tasks: number of pg_dump tasks running in parallelrestore_schema: default True, restores the schema and distribute the tablesrestore_data: default True, does a pg_restore of the shards dataconfig_file: path to your yaml file with the configuration for the citus-restore commandWe strongly recommend using a yaml configurattion file. You can find an example in tests/configuration.yml
Package: py-citus-rebalancer
# python-citus-rebalancer
A python command to get recommendations on commands to run to rebalance an unbalaned citus cluster.Sometimes when your cluster grows, you can have an uneven size on nodes: for example if one customers ingests more data than other. This simple commands helps you figure out whatmaster_move_shardcommands to run on your coordinator.## Installation
### Install with pip installRunpip install py-citus-rebalancer### Install from source codeClone the github repositoryRunpython setup.py develop## Running the commandThis command has different options:–host: is your postgres connection string–delta: is the maximum difference you expect between the node size and the idea size. For example if you have 4 nodes and 20GB of data, the idea size would be 5GB per node. The delta that you can give is for example 10% difference. It’s an integer representing the percent.–file: path to the file where you want the command to be written: example/path/to/rebalance.sql. You can then run the file on your coordinatorRun the commandcitus-rebalancer –host=postgres://user:pwd@host:5432/dbname –delta=10It will return commands to run, run them  on your coordinator to rebalance the cluster.