Saravanan666/pypi-org huggingface dataset:
Package: pymysql-extension
pymysql-extensionAuthor: Joker-desirepymysql-extension是一个基于pymysql的扩展，主要是为了解决pymysql在使用过程中的一些不便之处。注：只用到了pymysql库，所以不用担心兼容性问题。实现的功能1.SQL阅读器2.SQL结果对象转换器安装pipinstallpymysql-extension注意事项1. SQL阅读器使用时SQL文件路径设置方式一：设置SQL文件路径环境变量exportSQL_PATH=/path/to/sql方式二：在代码中设置SQL文件路径os.environ["SQL_PATH"]="/path/to/sql"方式三：不想设置环境变量，可直接在代码中设置SQL文件路径sql=SqlReader.reader("/path/to/sql/example.sql")2. SQL结果对象转换器使用时数据库连接配置数据库配置（默认）{"host":"localhost","port":3306,"user":"root","password":"root","db":"","charset":"utf8"}自定义配置方式一：conf={"host":"localhost","user":"root","password":"root","db":"test",}converter=SqlObjectConverter(**conf)方式二：converter=SqlObjectConverter(host="localhost",user="root",password="root",db="test")示例fromextension._sql_readerimportSqlReaderfromextension._sql_object_converterimportSqlObjectConverterif__name__=='__main__':sql=SqlReader.reader("example.sql",user_name="Joker-desire")print(sql)# 创建SQL对象转换器converter=SqlObjectConverter()# 执行SQL,并获取结果results=converter.exec(sql).fetch_all()print(results)# 执行SQL,并获取结果result=converter.exec(sql).fetch_one()# 将结果转换成字典print(result.to_dict())
Package: pymysql-json-cli
pymysql-json-cliinstallpipinstallpymysql-json-cliusagecat<< EOF |SHOW DATABASES;EOFpymysql-json# [{"Database": "information_schema"}, {"Database": "test"}]cat<<EOF |SELECT *FROM %(table_name)sEOFpymysql-json--args'{"table_name": "test_table"}'# [{"test_column": "arg_value"}, {"test_column": "test_value"}]echo"SHOW DATABASES;">db.sql
pymysql-json--sqlfile./db.sql# [{"Database": "information_schema"}, {"Database": "test"}]developmentNeedcargo-makedockerlint & testmakers--env-file.env.testtestslint except python codemakers--env-file.env.testlints
Package: pymysql-kits
pymysql_kitspymysql_kits is a tool based on PyMySQL. It can quickly establish a database connection pool and conveniently execute SQL statements.Contributing:The database connection pool module code comes frommysql/mysql-connector-python.The SQL statement operation code comes fromhopehook/python-lab.RequirementsPython – one of the following:CPython : 2.7 and >= 3.4PyPy : Latest versionMySQL Server – one of the following:MySQL >= 5.5MariaDB >= 5.5PyMySQL >= 0.8.1Installationpip install pymysql-kitsExampleThe following examples make use of a simple tableCREATETABLE`users`(`id`int(11)NOTNULLAUTO_INCREMENT,`email`varchar(255)COLLATEutf8_binNOTNULL,`password`varchar(255)COLLATEutf8_binNOTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8COLLATE=utf8_binAUTO_INCREMENT=1;PyMySQLConnectionPool Demofrompymysql_kits.poolingimportPyMySQLConnectionPooldb_conf={"host":"localhost","user":"user","password":"passwd","database":"db","port":3306,"autocommit":True,"charset":"utf8mb4",}# Create connection pooldb_pool=PyMySQLConnectionPool(pool_size=5,pool_name='local_pool',**db_conf)# Get a connectionconnection=db_pool.get_connection()try:withconnection.cursor()ascursor:# Create a new recordsql="INSERT INTO `users` (`email`, `password`) VALUES (%s,%s)"cursor.execute(sql,('webmaster@python.org','very-secret'))# connection is not autocommit by default. So you must commit to save# your changes.connection.commit()withconnection.cursor()ascursor:# Read a single recordsql="SELECT `id`, `password` FROM `users` WHERE `email`=%s"cursor.execute(sql,('webmaster@python.org',))result=cursor.fetchone()print(result)finally:connection.close()Connections and Transaction Demofrompymysql_kitsimportConnectionsdb_conf={"host":"localhost","user":"user","password":"passwd","database":"db","port":3306,"autocommit":True,"charset":"utf8mb4",}# Create a connection pollconn=Connections(pool_size=5,**db_conf)# Queryresult=conn.fetchall("SELECT `id`, `password` FROM `users` WHERE `email`=%s",('webmaster@python.org',))print(result)# Insertconn.insert("INSERT INTO `users` (`email`, `password`) VALUES (%s,%s)",('webmaster@python.org','very-secret'))# For transactiontransaction=conn.begin()try:transaction.insert("INSERT INTO `users` (`email`, `password`) VALUES (%s,%s)",('webmaster@python.org','very-secret'))except:transaction.rollback()else:transaction.commit()finally:transaction.close()# orwithconn.begin()astransaction:transaction.insert("INSERT INTO `users` (`email`, `password`) VALUES (%s,%s)",('webmaster@python.org','very-secret'))Licensepymysql_kits is released under the MIT License. See LICENSE for more information.
Package: pymysql-pooling
PyMySQLPoolPyMySQLPool is a pymysql-based database connection pool, simple and lightweight.Table of contentFeaturesRequirementsInstallationExampleRoadmapResourcesLicenseContributingFeaturesMaintain a minimum number of connection pools by default.If a number of unuse connections less than zero, dynamically add connections to pool until the current number of inuse connections equal maximum of the pool.Release the idle connections in regular until a number of unuse connections equal minimum of the pool.Support auto-commit mode.Support for ping check to get healthy connections.RequirementsPythonCPython : >= 3.4MySQL Server -- one of the following:MySQL >= 5.5MariaDB >= 5.5PyMySQL: >= 0.9.2InstallationPackage is uploaded onPyPIYou can install with pip$ pip install pymysql-poolingExampleMake use of a simple table (Example inMySQL doc)mysql>CREATETABLEpet(nameVARCHAR(20),ownerVARCHAR(20),->speciesVARCHAR(20),sexCHAR(1),birthDATE,deathDATE);mysql>INSERTINTOpet->VALUES("Puffball","Diane","hamster","f","1999-03-30",NULL);frompymysqlpool.poolimportPoolpool=Pool(host=HOST,port=PORT,user=USER,password=PASSWORD,db=DB)pool.init()connection=pool.get_conn()cur=connection.cursor()cur.execute('SELECT * FROM `pet` WHERE `name`=%s',args=("Puffball",))print(cur.fetchone())pool.release(connection)This example will print:('Puffball', 'Diane', 'hamster', 'f', datetime.date(1999, 3, 30), None)Support autocommit mode, as following:pool=Pool(host=HOST,port=PORT,user=USER,password=PASSWORD,db=DB,autocommit=True)That's all.RoadmapConnection PoolDynamically CreateDynamically ReleaseMonitor Web InterfaceResourcesPyMySQL DocumenationMySQL Reference ManualsLicensePyMySQLPool is released under the MIT License. See LICENSE for more information.ContributingThank you for your interest in the contribution of PyMySQLPool, your help and contribution is very valuable.You can submit an issue and pull requests, please submit an issue before submitting pull requests.
Package: pymysql-pooling-codingman
PyMySQLPoolPyMySQLPool is a pymysql-based database connection pool, simple and lightweight.Table of contentFeaturesRequirementsInstallationExampleRoadmapResourcesLicenseContributingFeaturesMaintain a minimum number of connection pools by default.If a number of unuse connections less than zero, dynamically add connections to pool until the current number of inuse connections equal maximum of the pool.Release the idle connections in regular until a number of unuse connections equal minimum of the pool.Support auto-commit mode.Support for ping check to get healthy connections.RequirementsPythonCPython : >= 3.4MySQL Server -- one of the following:MySQL >= 5.5MariaDB >= 5.5PyMySQL: >= 0.9.2InstallationPackage is uploaded onPyPIYou can install with pip$ pip install pymysql-poolingExampleMake use of a simple table (Example inMySQL doc)mysql>CREATETABLEpet(nameVARCHAR(20),ownerVARCHAR(20),->speciesVARCHAR(20),sexCHAR(1),birthDATE,deathDATE);mysql>INSERTINTOpet->VALUES("Puffball","Diane","hamster","f","1999-03-30",NULL);frompymysqlpool.poolimportPool# Note: you can also add any parameters relates to `pymysql.connections.Connection` objectpool=Pool(host=HOST,port=PORT,user=USER,password=PASSWORD,db=DB)pool.init()connection=pool.get_conn()cur=connection.cursor()cur.execute('SELECT * FROM `pet` WHERE `name`=%s',args=("Puffball",))print(cur.fetchone())pool.release(connection)This example will print:('Puffball', 'Diane', 'hamster', 'f', datetime.date(1999, 3, 30), None)Support autocommit mode, as following:pool=Pool(host=HOST,port=PORT,user=USER,password=PASSWORD,db=DB,autocommit=True)That's all.RoadmapConnection PoolDynamically CreateDynamically ReleaseMonitor Web InterfaceResourcesPyMySQL DocumenationMySQL Reference ManualsLicensePyMySQLPool is released under the MIT License. See LICENSE for more information.ContributingThank you for your interest in the contribution of PyMySQLPool, your help and contribution is very valuable.You can submit an issue and pull requests, please submit an issue before submitting pull requests.
Package: pymysqlpro
1、导入:from pymysqlpro import pymysqlpro,2、实例化:db=pymysqlpro.pymysqlpro(“数据库账号名”,”密码”,”localhost”,”3306”,”数据库名”),3、查询(保存到dataframe变量中):df=db.chaxun(sql语句),4、增删改:db.gai(sql语句)。
Package: pymysql_sa
This package provides aPyMySQLdialect forSQLAlchemy.Installationeasy_install pymysql_saUsagePyMySQL is a pure Python MySQL client providing a DB-API to a MySQL database by talking directly to the server via the binary client/server protocol.You can explicitly use pymysql by changing the ‘mysql’ part of your engine url to ‘pymysql’.You can also make pymysql the default mysql dialect as follows:import pymysql_sa
pymysql_sa.make_default_mysql_dialect()In this case you don’t need to change the engine url.Being pure Python, PyMySQL is easily patched bygeventand the likes to make it cooperative.
Package: pymysql-split-tool
What is this?Mysql query will become slow when table contains millions of rows. A simple way of solving this probolem is spliting the big table into small ones. We use some method to decide which table each row should be moved into. A widely used method is “modulus”, e.g. group rows by [ID mod 100]. This tool will help you to do this job easily.Check home page for usage and more infomation.FeaturesMove records from one table to another(or other) table(s) according to user specified rules.Dynamically create new tables during moving.Move records between different mysql servers.Check data integrity of the new tables.For records who have been moved to new tables, remove them from source table.Using it as a python module which means dynamically changing the behavior.
Package: pymytools
Collection of Useful Tools forpystopsProjectDuring my PhD, I noticed that some features that I implemented throughout my projects appeared repeatedly.
As a result, I decided to separate these features and manage them appropriately.GoalManage/unify fragmented features and deploy topypi.org.FeaturesDiagnosticsfile I/OSupports:csv,hdf5(.h5), andvtk(both.vtiand.vtu) formatsAll data loaded aretorch.TensorTensorboard trackerLogging, timer, and progress barPrettier representation usingrichpackageDependenciesMain dependencies:python = "^3.10"h5py = "^3.8.0"pyevtk = "^1.5.0"rich = "^13.3.2"tensorboard = "^2.12.0"tqdm = "^4.65.0"pandas = "^1.5.3"torch = "^1.13.1"vtk = "^9.2.6"My other personal project:pymyplot = "^0.2.7"(for plotting)
Package: pymywatertoronto
🌤️ Python Wrapper for MyWaterToronto REST APIThis module communicates with the City of TorontoMyWaterTorontoservice.The module is primarily written for the purpose of being used in Home Assistant for the Custom Integration calledmywatertoronto.This API will read the account information and obtain a list of address(es) and meter(s).Consumption data incudeUnfortunately, the City of Toronto only appears to be pulling meter data every 1-2 days.Installpymywatertorontois available on PyPi:pipinstallpymywatertorontoConsumption BucketsThis library will provide the following consumption bucketsTotal usageToday usageWeek-to-date usageMonth-to-date usageYear-to-date usageUsageThis library is primarily designed to be used in Home Assistant.The main interface for the library is thepymywatertoronto.MyWaterToronto. This interface takes 6 options:session: (required) An existingaiohttp.ClientSession.account_number: (required) Enter your Account No. found on the utility bill.client_number: (required) Enter your Client No. found on the utility bill.last_name: (required) Enter your Last Name - must match the first last name on the utility bill.postal_code: (required) Enter your Postal Code - must match the postal code on the utility bill.last_payment_method: (required) use the enumerations fromconst.LastPaymentMethod.Copy thetests/template.envtotests/.envfile and update the account information with your your City of Toronto account information:ACCOUNT_NUMBER="000000000"CLIENT_NUMBER="000000000-00"LAST_NAME="lastname"POSTAL_CODE="A1A 1A1"LAST_PAYMENT_METHOD="4"Use the enumerations fromconst.LastPaymentMethod.Run the test file:
python tests/test_mywatertoronto.py [-h or --dump]--dump paramater will create two files containing data that is leveraged in the Home Assistant integration:data_account_details.jsondata_consumption.json
Package: pymzid
PymzidReads in mzid files from protein identification results in mass spectrometry/proteomics experimentsInstallation and UsageInstall Python 3.7+ and pip. See instructions on Python website for specific instructions for your operating system.Pymzid can be installed from PyPI via pip. We recommend using a virtual environment.$ pip install pymzidLaunch as a standalone:$ python -m pymzid path/to/mzid -o path/to/outAlternatively:$ pymzidUse as a module:from pymzid.read_mzid import Mzid

mzid = Mzid("path/to/mzid")
mzid.read_psm()gives a pandas object under mzid.psm_dfTo test that the installation can load test data files in tests/data:$ pip install tox
$ toxTo run the test Percolator data and print the output to home:$ python -m pymzid tests/data/comet_percolator/percolator.target.mzid -o ~DependenciesPymzid is tested in Python 3.7 and 3.8 and uses the following packages:pandas==1.0.4
tqdm==4.46.1ContributingPlease contact us if you wish to contribute, and submit pull requests to us.AuthorsEdward Lau, PhD-Code/design-ed-lauSee also the list ofcontributorswho participated in this project.LicenseThis project is licensed under the MIT License - see theLICENSE.mdfile for details
Package: pymzm
python-minizinc-makerCreate pure Minizinc .mzn files from Python using python-minizinc-maker andminizinc-python.ModelModel:model = pymzm.Model()Variable:x = model.add_variable(name, vtype, val_min, val_max)Variables:xs = model.add_variables(name, indicies, vtype, val_min, val_max)Constraint:model.add_constraint(expr)Solve:model.set_solve_criteria(solve_criteria, expr)Global constraintsalldifferent, among, all_equal, count, increasing, decreasing, ..(more to be added later)..Solvemodel.set_solve_criteria(pymzm.SOLVE_MAXIMIZE, pymzm.Expression.sum(xs))model.set_solve_criteria(pymzm.SOLVE_SATISFY)Examplesintfact.py - Integer Factorization exampleintfact.pyimportpymzmmodel=pymzm.Model()x=model.add_variable("x",val_min=1,val_max=99999999)y=model.add_variable("y",val_min=1,val_max=99999999)model.add_constraint(x*y==7829*6907)model.add_constraint(y>1)model.add_constraint(x>y)model.set_solve_criteria(pymzm.SOLVE_SATISFY)model.generate()model.write("model.mzn")...model.mznvar 1..99999999: x;
var 1..99999999: y;
constraint x * y = 54074903;
constraint y > 1;
constraint x > y;
solve satisfy;Now you can use the minizinc library to solve the model directly.intfact.py...importminizincgecode=minizinc.Solver.lookup("gecode")result=minizinc.Instance(gecode,model).solve(all_solutions=True)print(f"x ={result[0].x}")# x = 7829print(f"y ={result[0].y}")# y = 6907bibd.py - Balanced Incomplete Block Designhttps://www.csplib.org/Problems/prob028/v=7;b=7;r=3;k=3;l=1model=pymzm.Model()indicies=[(i,j)foriinrange(v)forjinrange(b)]# bool if object v is in block bxs=model.add_variables("x",indices=indicies,vtype=pymzm.Variable.VTYPE_BOOL)foriinrange(b):model.add_constraint(pymzm.Expression.sum(xs[i,j]forjinrange(v))==r)foriinrange(v):model.add_constraint(pymzm.Expression.sum(xs[j,i]forjinrange(b))==k)foriinrange(b):forjinrange(i):model.add_constraint(pymzm.Expression.sum(xs[i,k]*xs[j,k]forkinrange(v))==l)model.set_solve_criteria(pymzm.SOLVE_SATISFY)model.generate()gecode=minizinc.Solver.lookup("gecode")result=minizinc.Instance(gecode,model).solve(all_solutions=False)foriinrange(v):print(" ".join([str(int(result[f"x_{i}_{j}"]))forjinrange(b)]))outputs0 0 1 0 0 1 1
0 1 0 0 1 1 0
1 0 0 1 0 1 0
0 0 1 1 1 0 0
0 1 0 1 0 0 1
1 1 1 0 0 0 0
1 0 0 0 1 0 1sat.py - Satisfiabilitymodel=pymzm.Model()xs=model.add_variables("x",indices=range(4),vtype=pymzm.Variable.VTYPE_BOOL)model.add_constraint(pymzm.Expression.AND([xs[0]|xs[1]|~xs[2],xs[1]|xs[2]|~xs[3],xs[0]|~xs[1]|xs[3],]))model.set_solve_criteria(pymzm.SOLVE_SATISFY)model.generate()gecode=minizinc.Solver.lookup("gecode")result=minizinc.Instance(gecode,model).solve(all_solutions=False)foriinrange(4):print(f"x_{i}={result[f'x_{i}']}")
Package: pymzn
PyMznPyMznis a Python library that wraps and enhances theMiniZinctools for constraint programming. PyMzn is built
on top of theminizinctoolkit and
provides a number of off-the-shelf functions to readily solve problems encoded
with the MiniZinc language and return solutions as Python dictionaries.UsageFirst, we need to define a constraint program via MiniZinc.
Here is a simple 0-1 knapsack problem encoded with MiniZinc:%% knapsack01.mzn %%
    int: n;                     % number of objects
    set of int: OBJ = 1..n;
    int: capacity;              % the capacity of the knapsack
    array[OBJ] of int: profit;  % the profit of each object
    array[OBJ] of int: size;    % the size of each object

    var set of OBJ: x;
    constraint sum(i in x)(size[i]) <= capacity;
    var int: obj = sum(i in x)(profit[i]);
    solve maximize obj;


    %% knapsack01.dzn %%
    n = 5;
    profit = [10, 3, 9, 4, 8];
    size = [14, 4, 10, 6, 9];You can solve the above problem using thepymzn.minizincfunction:importpymznsolns=pymzn.minizinc('knapsack01.mzn','knapsack01.dzn',data={'capacity':20})print(solns)The result will be:[{'x':{3,5}}]The returned object is a lazy solution stream, which can either be iterated or
directly indexed as a list. Thepymzn.minizincfunction takes care of all the
preprocessing, the communication with theminizincexecutable, and the parsing
of the solutions stream into Python dictionaries.PyMzn is also able to:Convert Python dictionaries todznformat and back (e.g. when
passing data to thepymzn.minizincfunction);Interface with many differentsolvers;PreprocessMiniZinc models
by embedding code from theJinja2templating
language;PerformconcurrentMiniZinc
execution using Python coroutines.For a follow-up of the previous example, read thePyMzn tutorial.For more information on the PyMzn classes and functions refer to thereference manual.InstallPyMzn can be installed via Pip:pipinstallpymznor from the source code available
onGitHub:pythonsetup.pyinstallRequirementsPyMzn is developed and maintained in Python 3.5. Starting from version 0.18.0,
support for Python 2 and versions previous to 3.5 has been dropped (its just too
much work mainintaining them). Using the packagepymzn.aiofor concurrent
execution requires Python 3.6 (though it is optional).PyMzn requires the MiniZinc toolkit to be installed on your machine. Starting
from PyMzn 0.18.0, the minimum MiniZinc version required is the 2.2.0. If you
need to work with previous versions of MiniZinc, PyMzn 0.17.1 should work fine.The easiest way to install MiniZinc is to download theMiniZincIDEpackage, which
contains both the MiniZinc binaries and several solvers. After downloading the
package, make sure the executables are visible to PyMzn either by setting thePATHenvironment variable or by configuring it using thepymzn.configmodule.For more details take a look at theInstall sectionin the
documentation.Optional dependencies include:Jinja2, for preprocessing
through Jinja templating language;PyYAMLandappdirs, for loading and saving
configuration files.AuthorPaolo Dragone, PhD student at the University of
Trento (Italy).
Package: pymzqc
MZQC python libraryA python library to use mzQC files. Specifically, have a usable object representation of mzQC that canserialisedeserialisesyntactic checkssemantic checksInstallPlease install pymzqc viaPyPI. If you want the latest development installpip install -U git+https://github.com/MS-Quality-hub/pymzqc.git#egg=pymzqcHowever, we recommend using thecontainersto check out the latest updates.DocumentationTo get a nice and simple overview of how pymzqc works, visithere.
The code documentation style convention is of the type "Sphinx/numpy".
If you however have successfully installed the library and want tojump right in and use the library, we suggest theinteractive guide.DevelopmentRepository structureThe python package's code is located in themzqcfolder, continuous testing code intests, the documentation indoc. Thelibray-usecontainer descriptions are incontainers, if you want todevelopfor the library with a container, please use the container description within.devcontainer.ContributionContributions are welcome! (Fork and open PR)MZQCThis library implements python modules for (de-)serialisation and validity checks of thePSI fileformat mzQC. To see the raw fileformat, including json schema and specification documentation, seehttps://github.com/HUPO-PSI/mzQC/.The library follows the formats versioning(which is 'v(Major).(Minor).(Patch)').5min interactive guideHave a go with ourinteractive python notebookto explore what is possible. (static version)
Package: pymzxml
pymzxml a python library to read and write mzXML filesThis package provides functions to read and write mzXML files.Reading is achieved by wrapping the high performance RAMP C library from theTransProteomicsPipelineproject in python.The library supports both single-shot and sequential writing of mzXML files.For examples on how to use the function please refer to theexamplesat the GitHub repository.InstallationFrom githubpip install git+https://github.com/digitalproteomes/pymzxml.gitFrom pypipip install pymzxml
Package: pyn5
====
pyn5.. image::https://img.shields.io/pypi/v/pyn5.svg:target:https://pypi.python.org/pypi/pyn5.. image::https://img.shields.io/pypi/pyversions/pyn5.svg:target:https://pypi.python.org/pypi/pyn5.. image::https://travis-ci.org/pattonw/rust-pyn5.svg?branch=master:target:https://travis-ci.org/pattonw/rust-pyn5.. image::https://readthedocs.org/projects/pyn5/badge/?version=latest:target:https://rust-pyn5.readthedocs.io/en/latest/?badge=latest:alt: Documentation StatusPython wrapper around rust-n5.Free software: MIT licenseDocumentation:https://rust-pyn5.readthedocs.io.Installationpip install pyn5installs pre-compiled wheels.
To build from source, you needmaturin_rust_ compiler nightly-2019-07-19 (some more recent nightly compilers may also work)Featuresh5py_ -like interfaceRelated projectsN5_ (file system format spec and reference implementation in java)rust-n5_ (implementation in rust, used in pyn5)zarr_ (similar chunked array storage library and format, supports some N5 features)z5_ (C++ implementation of zarr and N5 with python bindings, depends on conda)h5py_ (hierarchical array storage)h5py_like_ (ABCs for APIs like h5py)CreditsThis package was created with Cookiecutter_ and theaudreyr/cookiecutter-pypackage_ project template... _Cookiecutter:https://github.com/audreyr/cookiecutter.. _audreyr/cookiecutter-pypackage:https://github.com/audreyr/cookiecutter-pypackage.. _N5:https://github.com/saalfeldlab/n5/.. _rust-n5:https://github.com/aschampion/rust-n5/.. _zarr:https://zarr-developers.github.io/.. _z5:https://github.com/constantinpape/z5/.. _maturin:https://pypi.org/project/maturin/.. _rust:https://www.rust-lang.org/tools/install.. _h5py:https://www.h5py.org/.. _h5py_like:https://github.com/clbarnes/h5py_like
Package: pyNA
InstallationThe code is available on pypi and should work on any Linux distributions, MacOSX and Windows 10.
To install it just run:pipinstallpyNAin the console.You can install the package from the latest github source by doing:pipinstallgit+https://github.com/rbeucher/pyNA.gitDependenciesThe pip install should take care of the dependencies, if not you might want to
check that you have the following packages installed on your system:numpy >= 1.17.4scipy >= 1.3.2RecommendedWe recommend using Jupyter:jupyterLicensingpyNA is an open-source project licensed under the MiT License. See LICENSE.md for details.ContributingContactDr Romain BEUCHER,
The Australian National Universityromain.beucher@anu.edu.au