Saravanan666/pypi-org huggingface dataset:
Package: pyIPCMI
The pyIPCMI - Service ToolThe complete Documentation is available onpyIPCMI.ReadTheDocs.io.
For a step by step introduction read ourQuick Start guide.
A detailed usage guide is provided in the sections ofUsing pyIPCMI.
Please also readTool Chain Specificsfor special tool chain features.The references chapter provides a completecommand line argumentdescription for the service tool. InIP Core Databasewe are describing how the IP Core database works so a user can integrate own cores into our repository and infrastructure.
pyIPCMI own file formats are documentedhere.
And finally, all Python packages, modules and classes are automatically documented by DocUtils/Sphinx inPython Infrastructure.Contributors:Patrick Lehmann(Maintainer)Martin ZabelLicenseThis library is licensed underApache License 2.0SPDX-License-Identifier: Apache-2.0
Package: py-ip-command
py-ip-commandWrapping the Linuxipcommand in Python.Find me on pypi:https://pypi.org/project/py-ip-command/on GitHub:https://github.com/Corvan/py-ip-commandor install me:pipinstallpy-ip-commandpipenvinstallpy-ip-commandNoteThis is still work in progess, but you can already use it. Help is very welcome!UsageAt the moment only two commands ofipare implemented.Just usefromip_command.ipimportIPand then you can issue commands likeipaddrshowwithIP.addr.show()oripneighshowwithIP.neigh.show()The return of both isAn object oriented representation of the data reurned by both commandsa dict (addr) or a list of dicts (neigh) consisting of all the information the commands return but split
into single elements, if you passas_dict=Truetoshow()or simply callshow(True)
Package: pyIpeaData
IpeaDataPacote para obter dados do IpeaData baseado emhttps://github.com/ipea/pyIpeaData.
NÃ£o consegui contato com o autor original, entÃ£o criei esse projeto separado.Installpip install pyIpeaDataUseImportar pacoteimport pyIpeaData as ipeaObter dados de uma sÃ©rieipea.get_serie('ADMIS')Listar sÃ©ries disponÃ­veisipea.get_metadados()Obter informaÃ§Ãµes sobre uma sÃ©rie (usar campo SERCODIGO)ipea.get_metadados('ADMIS')Listar Temas das sÃ©riesipea.get_temas()Obter informaÃ§Ãµes sobre um Tema (usar campo TEMCODIGO)ipea.get_temas(28) #AgropecuÃ¡riaListar PÃ¡ises das sÃ©riesipea.get_paises()Obter informaÃ§Ãµes sobre um Pais (usar campo PAICODIGO)ipea.get_paises('BRA') #BrasilListar TerritÃ³rios das sÃ©riesipea.get_territorios()Obter informaÃ§Ãµes sobre um TerritÃ³rio (usar campo TERCODIGO e NIVNOME)ipea.get_territorios('1100015','MunicÃ­pios') #Alta Floresta D'OesteListar Fontes das sÃ©riesipea.get_fontes()API Ipea Datahttp://ipeadata.gov.br/api/
Package: pyipextract
pyipextractPython utility to extract or validate IPv4 addressesIPv4 ExtractionIt can extract valid IPv4 addresses from a given stringReturns a list of all valid IPv4 addresses extracted from a given stringIPv4 ValidationCan also be used just to validate an IPv4addressInstallationpip install pyipextractHow to useHere's an example of callingIPExtractorconstructor and using the extraction or just validation
mechanismsExtractionfrom pyipextract import IPExtractor

input_str = "This is a string which contains valid IPs 192.168.1.1, 1.1.1.1 and an invalid IP 256.444.22.22"
ip_extractor = IPExtractor()
extracted_ips = ip_extractor.extract(input_str)
print(extracted_ips)Output:['192.168.1.1', '1.1.1.1']Validationfrom pyipextract import IPExtractor

ips = ["192.168.1.1", "256.444.22.22", "1.1.1.1111"]
ip_extractor = IPExtractor()
for value in ips:
    if ip_extractor.validate(value):
        print("Valid IP: {}".format(value))
    else:
        print("Invalid IP: {}".format(value))OutputValid IP: 192.168.1.1
Invalid IP: 256.444.22.22
Invalid IP: 1.1.1.1111
Package: pyipf
PyIPFThepyipfpackage provides a function to perform Iterative Proportional Fitting (IPF), also known as
RAS or biproportional fitting. It is the operation of adjusting an initial N-dimensional matrix such that
its marginal sums match N target matrices of dimension N-1. In the 2-D case, the matrix is adjusted until
the row and column sums match two target vectors.Versions0.1.0First release
Package: py-ipfs-cid
Python IPFS CIDComputes IPFS CIDs from Python code.This library computes the IPFS DAG of the input data and then returns the CID of the root node.
This returns the same CID as would be computed byipfs add <file>.Examplefrompy_ipfs_cidimportcompute_cidcid:str=compute_cid(b"1234")# Returns QmTPqcLhVnCtjoYuCZwPzfXcFrUviiPComTepHfEEaGf7gCurrent limitationsOnly supports CID v0Only supports files, not directoriesOnly supports the default IPFS block size (256 KiB)
Package: py-ipfs-pubsub
py-ipfs-pubsubPubsub client for python, since ipfshttpclient pubsub isn't compatibe with the newer versions of ipfshttp://github.com/ZachisGit/py-ipfs-pubsubInstallpip3 install py-ipfs-pubsubExampleimportpubsub# Topic specific callbackdefon_sub_test(data,seqno,topic_ids,cid):print("New Message:",cid)print(data)print("")# Subscribe - pubsub.sub(endpoint, topic, callback)pubsub.sub("/dns/127.0.0.1/tcp/5001/http","mytopic",on_sub_test)# Publish 10xforiinrange(10):# Publish - pubsub.pub(endpoint, topic, str/bytes message)pubsub.pub("/dns/127.0.0.1/tcp/5001/http","mytopic","Hello World!")input("")# Unsubscribe from topic - pubsub.unsub(topic)pubsub.unsub("mytopic")
Package: pyipify
Pyipifyipify-py is a python module that allows you to interact with the ipify API in synchronous and asynchronous ways. It also provides a command-line interface for easy access.The ipify API is a simple service that returns your public IP address. You can use it to find out your IP address from any device or platform.FeaturesSupports both IPv4 and IPv6 addressesSupports both sync and async requests using requests and aiohttp librariesProvides a CLI tool to get your IP address from the terminalProvides a simple and intuitive interfaceInstallationInstall my-project with npmpipinstallPyipifyExamplesget ip address synchronousfromPyipify.synchronousimportfind_ipv4,find_ipv6ipv4_address=find_ipv4()ipv6_address=find_ipv6()print(ipv4_address,ipv6_address)get ip address asynchronouslyfromPyipify.asynchronousimportfind_ipv4,find_ipv6importasyncioasyncdefmain():ipv4_address=awaitfind_ipv4()ipv6_address=awaitfind_ipv6()returnipv4_address,ipv6_addressasyncio.run(main())use cli to get ip addresspython -m ipify -hto get startedContributingContributions are always welcome!Seecontributing.mdfor ways to get started.Please adhere to this project'scode of conduct.LicenseApache 2.0SupportFor support, emailsigireddybalasai@gmail.comor open an issue here
Package: pyipip
Descriptionipip.net IPv4 地址归属地数据库 Python 查询库。同时支持 dat 与 datx
格式的数据文件，支持 Python 2 与 3。 需要先去ipip.net
官方网站下载数据文件。性能较官方库为高，在 E5-2682 2.5GHz 下 QPS 约为 490k。Usage>>>frompyipipimportIPIPDatabase>>>db=IPIPDatabase('/path/to/your/ipipdb.dat')>>>db.lookup('202.112.80.106')'中国\t北京\t北京\t'Installpip install pyipipTest & Benchmarkmake testmake benchNote数据文件时时更新，请自行下载使用，代码仓库随附的数据文件只用于测试。
Package: pyiplocation
pyiplocationA simple python package to geolocate IPs without the need for a paid/limited API.UsageThis code snippet :frompyiplocationimportgeolocategeolocate("42.34.78.123")will return a dictionary containing :The IPThe HostnameThe Continent CodeThe Continent NameThe Country CodesThe Country NameThe Country CapitalThe State/ProvinceThe District/CountyThe CityThe Zip CodeThe City's LatitudeThe City's LongitudeThe Geoname IDA Boolean indicating whether or not the IP is in the EUThe Calling CodeThe Country TLDThe Country LanguagesThe ISPThe Connection TypeThe OrganizationThe AS NumberThe Country's Currency (name, code, symbol)The Timezone (name, offset, current time etc..)And more!
Package: pyipma
pyipmaPython library to retrieve information fromInstituto Português do Mar e AtmosferaRequirementsaiohttpgeopyExampleimportasyncioimportaiohttpfrompyipma.apiimportIPMA_APIfrompyipma.locationimportLocationasyncdefmain():asyncwithaiohttp.ClientSession()assession:api=IPMA_API(session)location=awaitLocation.get(api,40.6517,-8.6573,sea_stations=True)print("Forecast for{}".format(location.name))print("Nearest station is{}".format(location.station))print("Nearest sea station is{}".format(location.sea_station_name))obs=awaitlocation.observation(api)print("Current weather is{}".format(obs))forecasts=awaitlocation.forecast(api)print("Forecast for tomorrow{}".format(forecasts[0]))sea_forecast=awaitlocation.sea_forecast(api)print("Sea forecast for today{}".format(sea_forecast))asyncio.get_event_loop().run_until_complete(main())Changelog3.0.6 - Bug Fixes3.0.3 - Adds RCM (Fire Risk)3.0.2 - Changes to fully support Home Assistant integration3.0.0 - Backend fully rewritten, but keeping backward compatibility at interface level2.1.5 - Better logging and code formated with black2.1.0 - Sea Forecast2.0.5 - Look for previous observations when no temperature/humidity available2.0.4 - Ignore Observation stations with temperature/humidity -992.0.3 - Searches next closest station when offline2.0.2 - Adds Station Lat/Lon2.0.1 - fixes2.0.0 - Major refactor1.2.1 - Fix pip1.2.0 - Wind direction corrected1.1.6 - Interpret -99 and unavailable1.1.5 - Cache values1.1.4 - New API...CreditsValues are obtained fromIPMAContributors@abmantis
@joaocpsCopyright(C) 2018,2019,2020 Diogo Gomesdiogogomes@gmail.com
Package: pyipn
pyipnPyIPN is a tool for simulating GRB light curves observed by gamma-ray detectors dispersed throughout the Universe. Additionally, it provides fitting routines for fitting these light curves via random Fourier features to tringulate the location of the simulated GRB.This work is a build upon the classicalInterPlanetary Network (IPN)developed to do source tringulation via cross-corelation of the observed light curves.This work is a joint effort by:J. Michael Burgess
Ewan Cameron
Dmitry SvinkinIf you find this work useful, please cite XXXXXXInstall$>pipinstallpyipn
Package: pyipp
Python: Internet Printing Protocol (IPP) ClientAsynchronous Python client for Internet Printing Protocol (IPP).AboutThis package allows you to monitor printers that support the Internet Printing Protocol (IPP) programmatically.InstallationpipinstallpyippUsageimportasynciofrompyippimportIPP,Printerasyncdefmain():"""Show example of connecting to your IPP print server."""asyncwithIPP("ipps://EPSON123456.local:631/ipp/print")asipp:printer:Printer=awaitipp.printer()print(printer)if__name__=="__main__":loop=asyncio.get_event_loop()loop.run_until_complete(main())Setting up development environmentThis Python project is fully managed using thePoetrydependency
manager. But also relies on the use of NodeJS for certain checks during
development.You need at least:Python 3.9+PoetryNodeJS 18+ (including NPM)To install all packages, including all development requirements:npminstall
poetryinstallAs this repository uses thepre-commitframework, all changes
are linted and tested with each commit. You can run all checks and tests
manually, using the following command:poetryrunpre-commitrun--all-filesTo run just the Python tests:poetryrunpytest
Package: pyipptool
Convenient IPP request generator for python to interrogate CUPS or IPP devices, with the help ofipptool.Setuppython setup.py installTestspython setup.py testConfigurationAdd the following content in~/.pyipptool.cfgor/etc/pyipptool/pyipptol.cfg.[main]ipptool_path=/usr/bin/ipptoolcups_uri=http://localhost:631/;If authentication is requiredlogin=adminpassword=secretgraceful_shutdown_time=2timeout=10Whereipptool_pathpoints to the absolute path of your installed ipptoolUsageCreate an infinite time subscription for printer-XYZ class for therssnotifier>>>frompyipptoolimportcreate_printer_subscription>>>create_printer_subscription(printer_uri='http://localhost:631/classes/printer-XYZ',requesting_user_name='admin',notify_recipient_uri='rss://',notify_events='all',notify_lease_duration=0){'Name':'Create Printer Subscription','Operation':'Create-Printer-Subscription','RequestAttributes':[{'attributes-charset':'utf-8','attributes-natural-language':'en','printer-uri':'http://localhost:631/classes/printer-XYZ','requesting-user-name':'admin'},{'notify-events':'all','notify-lease-duration':0,'notify-recipient-uri':'rss://'}],'ResponseAttributes':[{'attributes-charset':'utf-8','attributes-natural-language':'en'},{'notify-subscription-id':23}],'StatusCode':'successful-ok','Successful':True,'notify-subscription-id':23}Copyright 2013 ezeep GmbHLicensed under the Apache License, Version 2.0 (the “License”);
you may not use this file except in compliance with the License.
You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an “AS IS” BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Package: pyIPRoyalPawns
IPRoyal Pawns APIUNOFFICIAL Python bindings for IPRoyal Pawns Dashboard APIInstallationpipinstallpyIPRoyalPawnsUsageLogin with username and password:frompyIPRoyalPawnsimportIPRoyalPawns# Your IPRoyalPawns (IPR) login username/email and passwordUSERNAME=""PASSWORD=""# Initialise the IPRoyalPawns objectuser=IPRoyalPawns()# Optionally, when instantiating you can pass in the following attributes to the IPRoyalPawns class:AttributeDescriptionDefault ValueAPI_BASE_URLThe API BASE URLhttps://api.pawns.appAPI_PREFIXThe API PREFIX/apiAPI_VERSIONThe API VERSION/v1# Call the complete_login_flow method to login and set the JWT in self.jwtuser.complete_login_flow(USERNAME,PASSWORD)Add proxies for future requests:frompyIPRoyalPawnsimportIPRoyalPawns# With authentication & protocoluser.set_proxy("ip:port:username:password","socks5")# Without authentication & protocoluser.set_proxy("ip:port","socks5")# Alternative wayuser.set_socks5_proxy("ip:port")user.set_socks5_proxy("ip:port:username:password")user.set_https_proxy("ip:port")user.set_https_proxy("ip:port:username:password")FunctionsGet user balance# Get balance and traffic sold as shown on the dashboard.user.balance()Remove a proxy# Removes a proxy for future requests.user.remove_proxy()Get all the devices# Get all the devicesuser.devices()Payout history# Get payout historyuser.payout_history()Is Logged In# Check if you're logged inuser.is_logged_in()Logout# Logged outuser.logout()Set JWT Token# Set JWT Token if you have one (otherwise use the login())user.set_jwt_token(TOKEN)ExceptionsThe following exceptions are defined.ExceptionReasonNotLoggedInErrorRaised when you try to access protected routes (dashboard, payout history, etc).AlreadyLoggedInErrorRaised when you try to login when you're already logged in.Liked my work?Consider donating:BTC: bc1q5y8z0cpgvafedvmwcfjn682skpr67e2du00acyLTC: LcquWHprnVRHY86u5rNDW6U8VD3WVbZV4h
Package: pyipsw
DescriptionInstallationUsageCLIDescriptionpyipswis a utility created in order to access ipsw.me data easily using python / cli.InstallationInstall the last released version usingpip:python3-mpipinstall-UpyipswOr install the latest version from sources:gitclonegit@github.com:matan1008/pyipsw.gitcdpyipsw
python3-mpipinstall-U-e.UsageCLIIn order to show data about devices, just run the devices command:pyipswdevicesIf you require more or less data, add-cwith column name:pyipswdevices-cdevice-cversion-cBoardConfigRunpyipsw devices --helpto see available columns:Usage:pyipswdevices[OPTIONS]Showdataaboutappledevices.

Options:-c,--columns[device|name|version|buildid|url|uploaddate|size|signed|sha1sum|releasedate|platform|md5sum|filename|cpid|bdid|BoardConfig]Datatoshow-f,--filtersTEXTPythoncodetoactasfiltertodevices,e.g."iPhone11"indevice--helpShowthismessageandexit.You can also add python code to filter the printed data:pyipswdevices-f"'iPhone10' in device and '14.4' in version"Which will output:------------------------------------------------------------------------------------
| device     | version | buildid | filename                                        |
------------------------------------------------------------------------------------
| iPhone10,1 | 14.4.2  | 18D70   | iPhone_4.7_P3_14.4.2_18D70_Restore.ipsw         |
| iPhone10,1 | 14.4.1  | 18D61   | iPhone_4.7_P3_14.4.1_18D61_Restore.ipsw         |
| iPhone10,1 | 14.4    | 18D52   | iPhone_4.7_P3_14.4_18D52_Restore.ipsw           |
| iPhone10,2 | 14.4.2  | 18D70   | iPhone_5.5_P3_14.4.2_18D70_Restore.ipsw         |
| iPhone10,2 | 14.4.1  | 18D61   | iPhone_5.5_P3_14.4.1_18D61_Restore.ipsw         |
| iPhone10,2 | 14.4    | 18D52   | iPhone_5.5_P3_14.4_18D52_Restore.ipsw           |
| iPhone10,3 | 14.4.2  | 18D70   | iPhone10,3,iPhone10,6_14.4.2_18D70_Restore.ipsw |
| iPhone10,3 | 14.4.1  | 18D61   | iPhone10,3,iPhone10,6_14.4.1_18D61_Restore.ipsw |
| iPhone10,3 | 14.4    | 18D52   | iPhone10,3,iPhone10,6_14.4_18D52_Restore.ipsw   |
| iPhone10,4 | 14.4.2  | 18D70   | iPhone_4.7_P3_14.4.2_18D70_Restore.ipsw         |
| iPhone10,4 | 14.4.1  | 18D61   | iPhone_4.7_P3_14.4.1_18D61_Restore.ipsw         |
| iPhone10,4 | 14.4    | 18D52   | iPhone_4.7_P3_14.4_18D52_Restore.ipsw           |
| iPhone10,5 | 14.4.2  | 18D70   | iPhone_5.5_P3_14.4.2_18D70_Restore.ipsw         |
| iPhone10,5 | 14.4.1  | 18D61   | iPhone_5.5_P3_14.4.1_18D61_Restore.ipsw         |
| iPhone10,5 | 14.4    | 18D52   | iPhone_5.5_P3_14.4_18D52_Restore.ipsw           |
| iPhone10,6 | 14.4.2  | 18D70   | iPhone10,3,iPhone10,6_14.4.2_18D70_Restore.ipsw |
| iPhone10,6 | 14.4.1  | 18D61   | iPhone10,3,iPhone10,6_14.4.1_18D61_Restore.ipsw |
| iPhone10,6 | 14.4    | 18D52   | iPhone10,3,iPhone10,6_14.4_18D52_Restore.ipsw   |
------------------------------------------------------------------------------------You can also download the firmwares with:pyipswdownload-devices/tmp/firmwares-f"'iPhone10' in device and '14.4' in version"
Package: pyiptables
iptablesIntroductionNative iptables is not friendly enough for most users.
This module is trying to make Linux/Iptables working like security groups in cloud environments.ScenariosService must be public facing, but still wants to block random bad ipaddress easily.Scripting interface talking to iptables, be convenient like same thing in cloud.ExamplesTo protect your personal web serverfrompyiptablesimportsecuritygroupassg# Create a security group based on tcp/port, naming associated to your to-be-protected service.sg.create_security_group(security_group_name='httpd',dst_port='80')# Create, append/insert, rules based on source address, with action accept/reject/drop.sg.create_security_group_rule(security_group_name='httpd',src_addr='1.2.3.0/24',rule_action='insert',packet_action='DROP')sg.create_security_group_rule(security_group_name='httpd',src_addr='2.3.4.0/24',rule_action='insert',packet_action='DROP')# List current rules for a given security group.sg.list_security_group_rules(security_group_name='httpd')# Delete a given rule for a security group.sg.delete_security_group_rule(security_group_name='httpd',rule_id='HTTPD_kfnsznwvb0mzn3uh')# Delete a given security group and its rules completely.sg.delete_security_group(security_group_name='httpd')
Package: pyiptoasn
pyiptoasnis an APACHE licensed library written in Python providing
an easy to use wrapper aroundhttps://iptoasn.com/.Installation:From source use$ python setup.py installor install from PyPi$ pip install pyiptoasnDocumentation:>>>frompyiptoasnimportIPLookup>>>ip=IPLookup()>>>ip.lookup('88.207.251.51'){u'as_number':6661,u'last_ip':u'88.207.255.255',u'as_description':u'EPT-LU Entreprise des P. et T. Luxembourg',u'first_ip':u'88.207.128.0',u'as_country_code':u'LU',u'announced':True}License:Apache v2.0 License
Copyright 2017 Martin Simon

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.Buy me a coffee?If you feel like buying me a coffee (or a beer?), donations are welcome:WDC : WbcWJzVD8yXt3yLnnkCZtwQo4YgSUdELkj
HBN : F2Zs4igv8r4oJJzh4sh4bGmeqoUxLQHPki
DOGE: DRBkryyau5CMxpBzVmrBAjK6dVdMZSBsuS
Package: pyipums
PyIPUMSPyIPUMS is a library for working with data fromIPUMS.ExampleExample that provides the IPUMS metadata in a dictionary.import json
import pandas as pd
from src.pyipums.parse_xml import read_ipums_ddi
from ipumspy import readers, ddi


def read_ipums_micro(ddi, data_file_path, n_max=None):
    # Read the fixed-width data file using the extracted column information
    df = pd.read_fwf(
        data_file_path,
        dtypes=ddi["column_dtypes"],
        colspecs=ddi["column_specs"],
        header=None,
        names=ddi["columns"],
        nrows=n_max,
        compression="gzip",
    )

    return df


def main():
    ddi_file_path = "./usa_00003.xml"
    data_file_path = "./usa_00003.dat.gz"
    cps_ddi = read_ipums_ddi(ddi_file_path)
    print(json.dumps(cps_ddi["file_metadata"], indent=2))
    cps_data = read_ipums_micro(cps_ddi, data_file_path, n_max=100)
    print(cps_data.head())ModifyingIf you are looking to make changes to the library I recommend usingpoetry.poetry env use 3.8
pyenv shell 3.8
poetry shellLicenseMIT
Package: pyipv8
FAQ:Q:Is this the new official Layer 3 solution for the Internet?A:No, the naming is a10-years-oldmockery of the deployment failure of IPv6 (which we sincerely hope will be deployed properly at some point in time).Linux:Windows:Mac:Mutation Tests:Read the Docs:What is IPv8 ?IPv8 aims to provide authenticated communication with privacy.
The design principle is to enable communication between public key pairs: IP addresses and physical network attachment points are abstracted away.
This Python 3 package is an amalgamation of peer-to-peer communication functionality fromDispersyandTribler, developed over the last 19 years by students and employees of the Delft University of Technology.
The IPv8 library allows you to easily create network overlays on which to build your own applications.IPv8 ObjectivesAuthentication. We offer mutual authentication using strong cryptography. During an IPv8 communication session, both parties can be sure of the other party’s identity. IPv8 users are identified by their public key. The initial key exchange is designed so that secrets are never transmitted across the Internet, not even in encrypted form. We use a standard challenge/response protocol with protection against spoofing, man-in-the-middle, and replay attacks.Privacy. IPv8 is specifically designed for strong privacy protection and end-to-end encryption with perfect forward secrecy. We enhanced the industry standard onion routing protocol, Tor, for usage in a trustless environment (e.g. no trusted central directory servers).No infrastructure dependency. Everybody is equal in the world of IPv8. No central web server, discovery server, or support foundation is needed.Universal connectivity. IPv8 can establish direct communication in difficult network situations. This includes connecting people behind a NAT or firewall.   IPv8 includes a single simple and effective NAT traversal technique: UDP hole-punching. This is essential when offering privacy without infrastructure and consumer-grade donated resources.Trust. You can enhance your security if you tell IPv8 which people you know and trust. It tries to build a web-of-trust automatically.DependenciesThe dependencies for IPv8 are collected in therequirements.txtfile and can be installed usingpip:python3 -m pip install --upgrade -r requirements.txtOn Windows or MacOS you will need to installLibsodiumseparately, as explainedhere.TestsRunning tests can be done by running:python3 run_all_tests.pyRunning the test suite on Python 3.7 requires the installation ofasynctest(python3 -m pip install asynctest).Running code coverage requires thecoveragepackage (python3 -m pip install coverage).
A coverage report can be generated by running:python3 create_test_coverage_report.pyGetting startedYou can start creating your first network overlay by followingthe overlay creation tutorial.We provide additional documentation onconfiguration,key generationandmessage serialization formatsonour ReadTheDocs page.