Skip to main content

A wrapper around httpx that abstracts away interacting with the HTML nationstates.net site. Focused on legality, correctness, and ease of use.

Project description

NSDotPy

A Python wrapper around httpx for legally interacting with the HTML NationStates site, as well as a barebones API client. Built for legality first and foremost, as well as ease of use.

Installation

pip install nsdotpy

Simple Example

from nsdotpy.session import NSSession
session = NSSession("NSDotPy Example", "1.0.0", "Script Author's nation", "Script User's nation")

if session.login("User Nation", "Password"):  # logs in and checks if login was successful
    session.move_to_region("Lily")  # only moves if you successfully logged in

# an API client is also available, here's a simple example
data = session.api_request("world", shard="nations")
# it returns a benedict object (https://github.com/fabiocaccamo/python-benedict), which is a dict with some extra features
# you can access the data like a normal dict
nations = data["nations"].split(",")
# or you can use a keyattribute (my personal favorite)
nations = data.nations.split(",")

TODO:

  • Region Admin Controls
  • Dossier and reports handling
  • More fleshed out API Client
  • Cards support Shoutouts to 9003
  • Migrate automatic docs generation, code formatting, and PyPI uploading to GitHub Actions for better CI

Docs

https://audreyreal.github.io/NSDotPy/nsdotpy/session.html#NSSession

Generating Docs

  1. Ensure poetry is installed, or your system's package manager if applicable.
  2. Run poetry install in the root directory of the project to install dependencies if you haven't already.
  3. Run poetry run pdoc nsdotpy/session.py -d=google -o=docs/ to generate the docs

Publishing to PyPi (for maintainers)

  1. Ensure poetry is installed, or your system's package manager if applicable.
  2. Run poetry install in the root directory of the project to install dependencies if you haven't already.
  3. Run poetry build to build the package. Ensure the version number in pyproject.toml is correct against the version number in session.py.
  4. Run poetry publish to publish the package to PyPi. You will need to have a PyPi account have supplied your API key to poetry.

Contributing

Pull requests are welcome. Ensure all code is formatted with black, that functions are type annotated (type annotating function variables not necessary), and docstrings are present using the Google style. If you use VSCode, you can use this extension for easy docstring generation.

License

AGPL3.0-or-later. Any project that uses this library must be licensed under AGPL3.0-or-later as well. If being used in a web application, the source code must be prominently made available to users.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nsdotpy-2.3.0.tar.gz (28.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nsdotpy-2.3.0-py3-none-any.whl (29.4 kB view details)

Uploaded Python 3

File details

Details for the file nsdotpy-2.3.0.tar.gz.

File metadata

  • Download URL: nsdotpy-2.3.0.tar.gz
  • Upload date:
  • Size: 28.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.8 Linux/6.2.0-1019-azure

File hashes

Hashes for nsdotpy-2.3.0.tar.gz
Algorithm Hash digest
SHA256 8132dc9e66b13f500c8960fac162702f8cb896a9614d67d6d5c36d04562eaee7
MD5 fab41727cf5c7f80bd869cf0057ea09c
BLAKE2b-256 dd4a83e176a01b575d9d28cdefbbcc5f517a2bb988bd0a217106b7284a7f8049

See more details on using hashes here.

File details

Details for the file nsdotpy-2.3.0-py3-none-any.whl.

File metadata

  • Download URL: nsdotpy-2.3.0-py3-none-any.whl
  • Upload date:
  • Size: 29.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.8 Linux/6.2.0-1019-azure

File hashes

Hashes for nsdotpy-2.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4908c13bbf77d911c851b7a7346e987f2e7ee0c24afd55c2150e4409a4f08278
MD5 b880710108319e75aa2cca84539913c8
BLAKE2b-256 73111f732c621b488d2e36e515dbb7db81471e9ab952a7428a34bfb5cf47d2d5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page