Saravanan666/pypi-org huggingface dataset:
Package: layerd
layerdMount, Download, and Inspect Lambda Layers in seconds.Lambda Layers created by a third party?Want the contents locally?Uselayerd.Table of ContentsInspirationInstallationUsageLicenseContributionsInspirationFirstly, What is a Lambda Layer?A Lambda Layer is an archive containing [...] code.
When you include a layer in an [AWS Lambda] function,
the contents are extracted to [...] the execution environment.As defined byan AWS Compute blog.Ok, then what does thislayerdlibrary do?Several steps of Layer inspection are automated here.Currently, a Layer is deployed to AWS under 1) a Name and 2) a Version. Once a version is deployed (possibly by a Third-Party), how can you then see the contents of that layer?One way would be to fumble around with the contents of the/optdirectory in a lambda function. The equivalent to trying to lick your elbow.Another way, only possible if created by a First-Party, would be to head to AWS, login, navigate to Lambda's page,
enter the Layer subsection, choose a version, and press Download. From there, head to your local system, and unzip the contents. Of course the preferred way,
but is greatly limited to solely First-Parties and takes several minutes of navigation and login to a 2FA system.layerdautomates the latter.layerdpings AWS Lambda, with the exact ARN of the Layer Version wanted, downloads, unzips, and mounts the contents locally. Within seconds.Not a bad way to save a few minutes.Installation$ pip3 install layerdUsageCLIThelayerdscript is automatically added to your OS's Path.
Call it with an ARN of a public lambda layer to mount the layer.$ layerd <ARN>Example:$ layerd arn:aws:lambda:us-east-1:ACC:layer:LAYER-NAME:221

Layer:    LAYER-NAME
Region:   us-east-1
V:        221

Created: ./LAYER-NAME-221/And pulled, unzipped, and mounted is the contents of the Lambda Layer.$ tree
.
└── LAYER-NAME-221/
    └── ...Python InlineThelayerdmodule has alayerd(arn: str)function to mount a Lambda Layer.>>> from layerd import layerd

>>> layerd('arn:aws:lambda:us-east-1:ACC:layer:LAYER-NAME:335')
Layer:    LAYER-NAME
Region:   us-east-1
V:        335

Created: ./LAYER-NAME-335/Boom. You've mounted the Layer locally.Licenselayerdis licensed under the MIT License. SeeLICENSEfor more.ContributionsPull Requests for modifications are always welcome. Forks are preferred over Branches.Want to become a maintainer? Submit 5 PRs, then we'll talk.
Package: layered-settings
layered-settingslayered-settingsis a simple and configurable hierarchical settings library for Python, including Django, Flask, or any other
scripts that need settings from potentially a variety of sources. With it you can load
settings from the environment, Amazon's SSM, local configparser .ini files, and more.InstallationThe package is available on pip aslayered-settings. Run:pip install layered-settingsIf you want to use the AWS SSM layer, include the [ssm] extra:pip install layered-settings[ssm]then import via:from layered_settings import initialize_settings, loadersExample Usageimportosfromlayered_settingsimportinitialize_settingsfromlayered_settingsimportloadersget_setting=initialize_settings(sources=[# Lowest priority is setting-defaults.ini.  All configuration values should be defaulted in here.# The `loaders.ConfigParserLoader` is optional - if you pass a string ending in .ini, it wraps it in# a `loaders.ConfigParserLoader` for you.loaders.ConfigParserLoader(os.path.join(SCRIPT_DIR,"setting-defaults.ini")),# Next priority is a "user" settings file.os.path.expanduser("~/.app-settings.ini"),# You can include a dictionary in the sources too...{"general":{"CLIENT_NAME":"client"},"email":{"EMAIL_HOST":"smtp.example.com","EMAIL_PORT":25},},# If we are able/willing to reach out to AWS, do so.  A `None` in the initialize_settings sources# will simply be ignored.loaders.SSMLoader(f"/app/stage/",aws_region="us-east-1")ifALLOW_SSM_CONFIGURATIONelseNone,# Top priority -- env var in the format APP__section__key.loaders.EnvLoader("APP__{section}__{key}"),])DATABASE_HOST=get_setting("database","DATABASE_HOST")AWS_SECRET_KEY=get_setting("aws","AWS_SECRET_KEY")...Frameworks SupportedThis library is tested using Python 3.x.
Package: layer-enforcer
Layer Enforcer is a tool for linting your imports within the project.The tool was designed to help maintain following order of things:Dependencies always flow towards root of the tree. Often this isdomainlayer.Dependencies may skip layers, as long as they flow in same direction.
For instance, yourweblayer may import use cases fromdomainlayer.Infer layer from imports or module names. Say, if you importfastapianywhere on the chain, the module is assigned toweblayer, or maybe you
wantmodelsto always bedblayer.Flexible layer structure. Preferably defined via config file.Code is packaged by component. I.e. single component may contain code from
the different layers.Be warned, since this might not the best fit for you.AlgorithmFirst pass: Match modules to layers. Report conflict if single module match
more than one layer.Second pass: For each module, iterate through all the imported modules.
If current module has no assigned layer, assign first found layer within list
of imported modules. If current module has an assigned layer, report conflict
if import is not allowed.Installationpipinstalllayer-enforcerFor Developmentpipinstall-e.[test,lint]Usagelayer-enforcermyprojectmyotherproject--layerslayers.ymlpyproject.tomlInstead of explicitly specifying CLI arguments, it is possible to provide
configuration viapyproject.tomlwithin thetool.layer_enforcertable:[tool.layer_enforcer]modules=["myproject","myotherproject"]ignore=["myproject.containers"]layers="layers.yml"layers.ymlAn example of clean-architecture-ish layer layout for typical web app:name:domainsubmodules:["entities","use_cases"]layers:-name:servicesubmodules:["services"]layers:-name:infrastructureimports:["stripe","requests","passlib"]layers:-name:dbimports:["sqlalchemy","psycopg2","alembic"]submodules:["models","memory","database"]-name:webimports:["fastapi","jose"]submodules:["views","schemas"]-name:tasksimports:["celery"]submodules:["tasks"]
Package: layer-loader
Layer-LoaderLayer-loader is a Python library designed to allow easy composition of configuration files.This project was inspired byhiera, though intends to be somewhat simpler.UsageThe primary interface is a Python API:importjsonimportlayer_loaderdata=layer_loader.load_files(['dev.json','main.json'],loader=json.load,)This will load the data fromdev.jsonandmain.json, interpreting it as JSON,
combine it into a single object and then any placeholders are expanded.For convenience you can also runlayer_loaderas a module:$catdev.json{"url":"http://localhost:8000"}$catmain.json{"endpoints":["{url}/abc","{url}/def","{url}/ghi"],"url":"https://production.system"}$python-mlayer_loader--loader=json.loaddev.jsonmain.json{"endpoints":["http://localhost:8000/abc","http://localhost:8000/def","http://localhost:8000/ghi"],"url":"http://localhost:8000"}LayersLayers are specified in order from most important (top) to least important (bottom).
When combining layers, layer-loader uses the following rules:Mappings can bemerged, combining the entries from several layersScalar values and listsreplaceentries in the lower layersKeys in more important layers override those in lower layersWhere keys are present in multiple layers, it is an error for those
keys to have values of different types. The exception to this is
that keys can explicitly be set tonullin a higher layer in order
to remove a value set in a lower layer.PlaceholdersPlaceholders are specified similarly to python format strings and may appear
anywhere inside a string value, for example'foo {place.holder} bar'.
Placeholders should not appear in keys -- they will not be found there.Placeholders are expanded by walking the flattened data structure, using dots in
the placeholder to separate names at each level of nesting.There is no mechanism to specify which layer a placeholder should be looked up
within -- all placeholder expansion happens after the layers have been
flattened.
Package: layermesh
LayermeshLayermesh is a Python library for creating and manipulating computational meshes with a layer/column structure, i.e. a (possibly unstructured) 2-D mesh projected down through a series of layers of constant thickness.The uppermost layers of the mesh may be incomplete (i.e. do not contain cells for all columns), so that an irregular top surface can be used to represent e.g. topography.The Layermesh library can be used to carry out a variety of actions on such meshes, including:creating meshesloading and saving fromHDF5filesexporting to a variety of 3-D mesh formats (via themeshiolibrary)fitting surface elevation datalocal refinement of the horizontal meshoptimization to improve horizontal mesh qualitymesh searching, to locate particular cells, columns or layers2-D layer and vertical slice plots (viaMatplotlib)DocumentationDocumentation for Layermesh can be found onRead The Docs.InstallationLayermesh can be installed viapip, Python's package manager:pipinstalllayermeshor if you don't have permissions for installing system-wide Python packages, you can just install it locally inside your own user account:pipinstall--userlayermeshThis will download and install Layermesh from the Python Package Index (PyPI).LicensingLayermesh is open-source software, released under the GNULesser General Public License(LGPL) version 3.
Package: layernext
layernext-python-sdkLayerNext python API clientSync (upload/download) with LayerNext stacks via APIs from your codeInstallation$ pip install layernextUsageimportlayernextapi_key='xxxxxxxxxx'secret='xxxxxxxxxxx'url='https://api.xxxx.layernext.ai'client=layernext.LayerNextClient(api_key,secret,url)
Package: layernext-beta
layernext-python-sdkLayerNext python API clientSync (upload/download) with LayerNext stacks via APIs from your codeInstallation$ pip install layernextUsageimportlayernextapi_key='xxxxxxxxxx'secret='xxxxxxxxxxx'url='https://api.xxxx.layernext.ai'client=layernext.LayerNextClient(api_key,secret,url)
Package: layernext-enterprise
layernext-python-sdkLayerNext Python API Client
Sync (upload/download) with LayerNext stacks via APIs from your local machineYou canUpload model runs dataInstallation$ pip install layernext-sdkUsageimportlayernextapi_key='xxxxxxxxxx'secret='xxxxxxxxxxx'url='https://api.xxxx.layernext.ai'client=layernext.LayerNextClient(api_key,secret,url)collection_base_path='path1/path2/'#upload box type annotationsfile_path_bbox='/home/bob/mydata/example_bbox.json'#local file pathclient.upload_modelrun_from_json(collection_base_path,'test model v1.0.1',file_path_bbox,'rectangle')#upload polygon type annotationsfile_path_polygon='/home/bob/mydata/example_polygon.json'client.upload_modelrun_from_json(collection_base_path,'test model v1.0.2',file_path_polygon,'polygon')#upload line type annotationsfile_path_line='/home/bob/mydata/example_line.json'client.upload_modelrun_from_json(collection_base_path,'test model v1.0.3',file_path_line,'line')Sample DataBox Geometry{"images":[{"image":"000000397133.jpg","annotations":[{"bbox":[217.62,240.54,38.99,57.75],"label":"kitchen","metadata":{"name":"bottle"},"confidence":0.30611335805442985}]}]}Polygon Geometry{"images":[{"image":"000000397133.jpg","annotations":[{"polygon":[[224.24,297.18],[228.29,297.18],[234.91,298.29],[243.0,297.55],[249.25,296.45],[252.19,294.98],[256.61,292.4],[254.4,264.08],[251.83,262.61],[241.53,260.04],[235.27,259.67],[230.49,259.67],[233.44,255.25],[237.48,250.47],[237.85,243.85],[237.11,240.54],[234.17,242.01],[228.65,249.37],[224.24,255.62],[220.93,262.61],[218.36,267.39],[217.62,268.5],[218.72,295.71],[225.34,297.55]],"label":"kitchen","metadata":{"name":"bottle"},"confidence":0.8316836170368476}]}]}Line Geometry{"images":[{"image":"000000397133.jpg","annotations":[{"line":[[217.62,240.54],[256.61,240.54],[256.61,298.28999999999996],[217.62,298.28999999999996]],"label":"kitchen","metadata":{"name":"bottle"},"confidence":0.9496247739008129}]}]}
Package: layernext-enterprise-beta
layernext-python-sdkLayerNext Python API Client
Sync (upload/download) with LayerNext stacks via APIs from your local machineYou canUpload model runs dataInstallation$ pip install layernext-sdkUsageimportlayernextapi_key='xxxxxxxxxx'secret='xxxxxxxxxxx'url='https://api.xxxx.layernext.ai'client=layernext.LayerNextClient(api_key,secret,url)collection_base_path='path1/path2/'#upload box type annotationsfile_path_bbox='/home/bob/mydata/example_bbox.json'#local file pathclient.upload_modelrun_from_json(collection_base_path,'test model v1.0.1',file_path_bbox,'rectangle')#upload polygon type annotationsfile_path_polygon='/home/bob/mydata/example_polygon.json'client.upload_modelrun_from_json(collection_base_path,'test model v1.0.2',file_path_polygon,'polygon')#upload line type annotationsfile_path_line='/home/bob/mydata/example_line.json'client.upload_modelrun_from_json(collection_base_path,'test model v1.0.3',file_path_line,'line')Sample DataBox Geometry{"images":[{"image":"000000397133.jpg","annotations":[{"bbox":[217.62,240.54,38.99,57.75],"label":"kitchen","metadata":{"name":"bottle"},"confidence":0.30611335805442985}]}]}Polygon Geometry{"images":[{"image":"000000397133.jpg","annotations":[{"polygon":[[224.24,297.18],[228.29,297.18],[234.91,298.29],[243.0,297.55],[249.25,296.45],[252.19,294.98],[256.61,292.4],[254.4,264.08],[251.83,262.61],[241.53,260.04],[235.27,259.67],[230.49,259.67],[233.44,255.25],[237.48,250.47],[237.85,243.85],[237.11,240.54],[234.17,242.01],[228.65,249.37],[224.24,255.62],[220.93,262.61],[218.36,267.39],[217.62,268.5],[218.72,295.71],[225.34,297.55]],"label":"kitchen","metadata":{"name":"bottle"},"confidence":0.8316836170368476}]}]}Line Geometry{"images":[{"image":"000000397133.jpg","annotations":[{"line":[[217.62,240.54],[256.61,240.54],[256.61,298.28999999999996],[217.62,298.28999999999996]],"label":"kitchen","metadata":{"name":"bottle"},"confidence":0.9496247739008129}]}]}
Package: layer-to-layer-pytorch
L2L execution algorithm PyTorchPyTorch implementation of L2L execution algorithm from paperTraining Large Neural Networks with Constant Memory using a New Execution Algorithm🚀 ExampleYou need to define a torch model where all layers are specified in ModuleList.Seeexamples folderBasic usageimporttorchfromtorchimportnn,optimclassM(nn.Module):def__init__(self,depth:int,dim:int,hidden_dim:Optional[int]=None):super().__init__()hidden_dim=hidden_dimordimself.layers=nn.ModuleList([nn.Sequential(nn.Linear(dim,hidden_dim),nn.BatchNorm1d(hidden_dim),nn.LeakyReLU(),)]+[nn.Sequential(nn.Linear(hidden_dim,hidden_dim),nn.BatchNorm1d(hidden_dim),nn.LeakyReLU(),)foriinrange(depth)]+[nn.Linear(hidden_dim,dim),nn.Sigmoid()])defforward(self,batch:torch.Tensor)->torch.Tensor:x=batchforlinself.layers:x=l(x)returnxmodel=M(depth=5,dim=40).train()# on CPUThen, you can use the L2L wrapper over this model.fromlayer_to_layer_pytorch.l2limportLayer2Layerl2l_model=Layer2Layer(model,layers_attr="layers",# attribute with ModuleListmicrobatch_size=100,# size of a microbatch in a minibatch :) from original paperverbose=False# enable tqdm)And train it, like torch model (almost):fromtqdm.autoimporttqdm,trangex=torch.rand(1_000,40)# on CPUy=torch.rand(1_000,40)# on CPUlosses=[]criterion=nn.MSELoss()optimizer=optim.AdamW(l2l_model.main_params)# optimizer works with the main model on CPUforiintrange(2000):l2l_model.zero_grad()_=l2l_model.forward(x)loss_value:float=l2l_model.compute_loss(y,criterion)ifi%50==0:tqdm.write(f"[{i}] loss ={loss_value}")losses.append(loss_value)l2l_model.backward()optimizer.step()l2l_model.update_main_model_params()# Sync params with CPUFP-16 usageCross-mixes-precision available in init paramsfromlayer_to_layer_pytorch.l2limportLayer2Layerl2l_model=Layer2Layer(model,layers_attr="layers",microbatch_size=100,# fp-16mixed_precision=True,loss_scale=128.0)And then train the same way 😉Installationpipinstalllayer-to-layer-pytorchor install withPoetrypoetryaddlayer-to-layer-pytorch📈 ReleasesYou can see the list of available releases on theGitHub Releasespage.We followSemantic Versionsspecification.🛡 LicenseThis project is licensed under the terms of theMITlicense. SeeLICENSEfor more details.📃 CitationThis library@misc{layer-to-layer-pytorch,
  author = {Roman Tezikov},
  title = {PyTorch implementation of L2L execution algorithm},
  year = {2020},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/TezRomacH/layer-to-layer-pytorch}}
}Original paper@article{Pudipeddi2020TrainingLN,
  title={Training Large Neural Networks with Constant Memory using a New Execution Algorithm},
  author={Bharadwaj Pudipeddi and Maral Mesmakhosroshahi and J. Xi and S. Bharadwaj},
  journal={ArXiv},
  year={2020},
  volume={abs/2002.05645}
}CreditsThis project was generated withpython-package-template.
Package: layertuber
layertuberis a vtuber puppet application with a focus on allowing anyone to very quickly create a simple but lively avatar for themselves, usingOpenSeeFaceto track your face with a webcam.Alayertuberrig is a combination of anOpenRasterdrawing and a set of instructions tying each layer to some output of the OpenSeeFace process. Once stuff has settled down a bit, I’ll lay out the options in this README; for now, theexamplesandconfig schemawill hopefully point you in the right direction.
Package: layerview
LayerView is a G-code file visualizer and inspector.Source code:majabojarska/LayerViewLicense:GPLv3Documentation:https://layerview.readthedocs.io.Features3D visualization and inspection of G-code files.Parametrized layer coloring.Adjustable visible layer range.Parameter inspection for model and layers.SupportsRepRapG-code flavour and its derivatives.Marlinalso works fine with the current feature set.Hardware accelerated 3D rendering viaPanda3D.Runs on x86_64 variants of Linux, Windows, MacOS.QuickstartInstall the latest LayerView package via pip:pip install -U layerviewRun LayerView:layerviewSee thefull documentationfor more details oninstallationandusage.ContributingContributions are welcome, and they are greatly appreciated!
Every little bit helps, and credit will always be given.
See theContributingpage for more details on how to contribute to this project.CreditsThis package was created withCookiecutterand thebriggySmalls/cookiecutter-pypackageproject template.
Package: layerx-sdk
layerx-python-sdkLayerX Python API Client
Sync (upload/download) with LayerX stacks via APIs from your local machineYou canUpload model runs dataInstallation$ pip install layerx-sdkUsageimportlayerxapi_key='xxxxxxxxxx'secret='xxxxxxxxxxx'url='https://api.xxxx.layerx.ai'client=layerx.LayerxClient(api_key,secret,url)collection_base_path='path1/path2/'#upload box type annotationsfile_path_bbox='/home/bob/mydata/example_bbox.json'#local file pathclient.upload_modelrun_from_json(collection_base_path,'test model v1.0.1',file_path_bbox,'rectangle')#upload polygon type annotationsfile_path_polygon='/home/bob/mydata/example_polygon.json'client.upload_modelrun_from_json(collection_base_path,'test model v1.0.2',file_path_polygon,'polygon')#upload line type annotationsfile_path_line='/home/bob/mydata/example_line.json'client.upload_modelrun_from_json(collection_base_path,'test model v1.0.3',file_path_line,'line')Sample DataBox Geometry{"images":[{"image":"000000397133.jpg","annotations":[{"bbox":[217.62,240.54,38.99,57.75],"label":"kitchen","metadata":{"name":"bottle"},"confidence":0.30611335805442985}]}]}Polygon Geometry{"images":[{"image":"000000397133.jpg","annotations":[{"polygon":[[224.24,297.18],[228.29,297.18],[234.91,298.29],[243.0,297.55],[249.25,296.45],[252.19,294.98],[256.61,292.4],[254.4,264.08],[251.83,262.61],[241.53,260.04],[235.27,259.67],[230.49,259.67],[233.44,255.25],[237.48,250.47],[237.85,243.85],[237.11,240.54],[234.17,242.01],[228.65,249.37],[224.24,255.62],[220.93,262.61],[218.36,267.39],[217.62,268.5],[218.72,295.71],[225.34,297.55]],"label":"kitchen","metadata":{"name":"bottle"},"confidence":0.8316836170368476}]}]}Line Geometry{"images":[{"image":"000000397133.jpg","annotations":[{"line":[[217.62,240.54],[256.61,240.54],[256.61,298.28999999999996],[217.62,298.28999999999996]],"label":"kitchen","metadata":{"name":"bottle"},"confidence":0.9496247739008129}]}]}
Package: layerx-sdk-beta
layerx-python-sdkLayerX Python API Client
Sync (upload/download) with LayerX stacks via APIs from your local machineYou canUpload model runs dataInstallation$ pip install layerx-sdkUsageimportlayerxapi_key='xxxxxxxxxx'secret='xxxxxxxxxxx'url='https://api.xxxx.layerx.ai'client=layerx.LayerxClient(api_key,secret,url)collection_base_path='path1/path2/'#upload box type annotationsfile_path_bbox='/home/bob/mydata/example_bbox.json'#local file pathclient.upload_modelrun_from_json(collection_base_path,'test model v1.0.1',file_path_bbox,'rectangle')#upload polygon type annotationsfile_path_polygon='/home/bob/mydata/example_polygon.json'client.upload_modelrun_from_json(collection_base_path,'test model v1.0.2',file_path_polygon,'polygon')#upload line type annotationsfile_path_line='/home/bob/mydata/example_line.json'client.upload_modelrun_from_json(collection_base_path,'test model v1.0.3',file_path_line,'line')Sample DataBox Geometry{"images":[{"image":"000000397133.jpg","annotations":[{"bbox":[217.62,240.54,38.99,57.75],"label":"kitchen","metadata":{"name":"bottle"},"confidence":0.30611335805442985}]}]}Polygon Geometry{"images":[{"image":"000000397133.jpg","annotations":[{"polygon":[[224.24,297.18],[228.29,297.18],[234.91,298.29],[243.0,297.55],[249.25,296.45],[252.19,294.98],[256.61,292.4],[254.4,264.08],[251.83,262.61],[241.53,260.04],[235.27,259.67],[230.49,259.67],[233.44,255.25],[237.48,250.47],[237.85,243.85],[237.11,240.54],[234.17,242.01],[228.65,249.37],[224.24,255.62],[220.93,262.61],[218.36,267.39],[217.62,268.5],[218.72,295.71],[225.34,297.55]],"label":"kitchen","metadata":{"name":"bottle"},"confidence":0.8316836170368476}]}]}Line Geometry{"images":[{"image":"000000397133.jpg","annotations":[{"line":[[217.62,240.54],[256.61,240.54],[256.61,298.28999999999996],[217.62,298.28999999999996]],"label":"kitchen","metadata":{"name":"bottle"},"confidence":0.9496247739008129}]}]}
Package: layerz
A simple module for creating layers of dependencies.InstallationJust use pip!:$ pip install layerzUsagefromlayerzimportLayersdep1=type("dep1",(object,),{"dependencies":lambdas,all_deps:[]})()dep2=type("dep2",(object,),{"dependencies":lambdas,all_deps:["dep3"]})()dep3=type("dep3",(object,),{"dependencies":lambdas,all_deps:["dep1"]})()dep4=type("dep4",(object,),{"dependencies":lambdas,all_deps:["dep3"]})()dep5=type("dep1",(object,),{"dependencies":lambdas,all_deps:["dep4","dep2"]})()layers=Layers({"dep1":dep1,"dep2":dep2,"dep3":dep3,"dep4":dep4,"dep5":dep5})layers.add_to_layers("dep5")forlayerinlayers.layered:# might get something like# [("dep5", dep5)]# [("dep4", dep4), ("dep2", dep2)]# [("dep3", dep3)]# [("dep1", dep1)]When we create the layers, it will do a depth first addition of all dependencies
and only add a dep to a layer that occurs after all it’s dependencies.Cyclic dependencies will be complained about.TestsInstall locally:$ pip install -e .
$ pip install -e ".[tests]"And then use the helper script:$ ./test.sh
Package: layerzero-scan
LayerZero-ScanA minimal Python Wrapper for the LayerZero Scan API.Installationpipinstallgit+https://github.com/kamilgg/layerzero-scanTestsInbashtest that everything looks OK before proceeding:bashrun_tests.shUsageInpythoncreate a client:# For mainnetfromlayerzeroimportLayerZeroclient=LayerZero()# For testnetfromlayerzeroimportLayerZeroTestnet,Chainsclient=LayerZeroTestnet()# Testnetclient=LayerZeroTestnet(Chains.TESTNET)# Also testnetclient=LayerZeroTestnet(Chains.SANDBOX)# SandboxThen you can call all available methods, e.g.:latest_messages=client.get_latest_messages()latest_messages.count>63747514tx_hash="0xdbb9456feb829f67c2d26df00ba1f6f383463a0a7dc6ebc5d48c025800ed901b"message=client.get_message_by_hash(tx_hash)message.src_ua_nonce>1866644message.status>DELIVEREDBykamgg.eth