Skip to main content

novence (Python)

Python SDK for Novence — static site hosting built for AI agents.

Not published to PyPI yet. Use it from the repo for now.

Requires Python 3.10+. No third-party dependencies — standard library only.

Quick start

from novence import Novence, bootstrap_account, verify_email

boot = bootstrap_account("you@example.com")     # emails a 6-digit OTP
verify_email("you@example.com", "123456")

client = Novence(api_key=boot["apiKey"])
project = client.create_project("launch")
pid = project["project"]["id"]

client.upload_bytes(pid, "index.html", "text/html; charset=utf-8", b"<h1>hi</h1>")
client.deploy(pid)

deployment = client.wait_for_deployment(pid)     # polls until live or failed
print(deployment["liveUrl"])

Configuration

base_url defaults to https://api.novence.ai. Override per client, or set NOVENCE_BASE_URL to point everything at a different control plane:

client = Novence(api_key=key, base_url="http://127.0.0.1:8080")

The variable is read at call time, so setting it after import still works.

Deploys are asynchronous

deploy() returns as soon as the deployment is queued. Use wait_for_deployment(project_id, timeout=300, interval=2) to block until it is live, or poll latest_deployment(project_id) yourself.

checks_results["passed"] is None when checks were skipped (unverified accounts). That is not a pass.

API

Area Methods
Projects create_project list_projects get_project update_project project_usage project_analytics
Uploads upload_dir upload_file upload_bytes get_upload_url get_upload_urls_batch confirm_upload confirm_batch
Deploys deploy latest_deployment wait_for_deployment
Domains configure_domain domain_status
Forms create_form list_forms get_form update_form delete_form list_form_submissions delete_form_submission
Billing quotas checkout billing_portal mpp_upgrade
Account get_account account_console_kit create_session revoke_session revoke_api_key

Module-level: bootstrap_account verify_email resend_verification reissue_api_key.

reissue_api_key issues a new key and revokes the old one — rebuild your client with the returned key.

Uploading a directory

result = client.upload_dir(pid, "./dist")
result["uploaded"]   # site paths that went up
result["skipped"]    # local files whose extension the platform does not accept

Dotfiles and dot-directories (.git, .env) are skipped, matching the TypeScript SDK.

Errors

Every API error raises RuntimeError carrying the API's message — including rate limits and quota rejections.

Security

nv_ keys are server-side credentials. Read them from the environment; never commit one or put one in client-side code.

License

MIT

Download files

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

Source Distribution

novence-0.2.0.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

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

novence-0.2.0-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file novence-0.2.0.tar.gz.

File metadata

  • Download URL: novence-0.2.0.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.5

File hashes

Hashes for novence-0.2.0.tar.gz
Algorithm Hash digest
SHA256 d4a25b23557223e5bd0690432414a395d9d7040f08a37868954301dc71f1d1f7
MD5 0add82a9f61c16661c80d7fc2323d676
BLAKE2b-256 cec623f27a4a4598921e3d2b44ded27d52207fb4500a9db53ade828e823933f3

See more details on using hashes here.

File details

Details for the file novence-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: novence-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.5

File hashes

Hashes for novence-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b566b02f79e44983603ca8934fdee8945c05b45dbda0be1a1b2010377352133f
MD5 5a5c3e3de6fe88e74d40e129e9d41953
BLAKE2b-256 3cbc2a68ac6a6cb967c3ed42f23410b8537c036dfdc9e90fee39d9eb9013686c

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.1

2 files

This release

0.2.0 This release

2 files

Supported by

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