summaryrefslogtreecommitdiff
path: root/sphinx/source
diff options
context:
space:
mode:
authorRoberto Bertó <463349+robertoberto@users.noreply.github.com>2026-05-19 02:35:08 +0000
committerRoberto Bertó <463349+robertoberto@users.noreply.github.com>2026-05-19 02:35:08 +0000
commitea8c349f6dce955696850198b8544d0203b467fb (patch)
tree856102b7a4c30c79434d521b9852bef1c055ce09 /sphinx/source
parent0f76bcc7179976e893b1d9f296b1b1e7988b0031 (diff)
downloadpyvyos-ea8c349f6dce955696850198b8544d0203b467fb.tar.gz
pyvyos-ea8c349f6dce955696850198b8544d0203b467fb.zip
chore: clean packaging and development tooling
This commit modernizes the project's tooling and packaging without changing the runtime code. It addresses dead workflows, obsolete helper scripts, duplicated configuration, and stale developer docs. Removed: - .github/workflows/python-app.yml: targeted Python 3.12, referenced a non-existent requirements.txt, ran only flake8 with pytest commented out - Makefile: hard-coded env/bin/python paths that do not work with uv - run_tests.sh and run_tests.py: duplicated each other and referenced removed modules (test_exceptions, test_quick) - sphinx/ and .readthedocs.yaml: the RTD config pointed to docs/source/conf.py while the sphinx tree lived under sphinx/source, so the build never worked and no docs were ever published - docs/development/architecture.md, refactor-roadmap.md, and quality-and-utils.md: described the pre-cleanup proposal that included specs/exceptions/request_id, now contradicted by the code Edited: - pyproject.toml: - dropped the validation extra (Pydantic) — specs/ is gone - dropped the duplicated [tool.hatch.metadata].dependencies block - dropped the duplicated [dependency-groups].dev block - declared the wheel package explicitly via [tool.hatch.build.targets.wheel].packages - bumped pytest floor to >=8.0 (Python 3.13 compatible) - added richer classifiers (Development Status, audience, topic, Typing :: Typed), keywords, license file pointer, and a Changelog URL - .github/workflows/python-pr-validation.yml: upgraded to actions/checkout@v4 and setup-python@v5, switched to astral-sh/setup-uv, removed obsolete architecture argument - .github/dependabot.yml: added the github-actions ecosystem so workflow versions stay current Added: - pyvyos/py.typed: PEP 561 marker advertising the package as typed - .pre-commit-config.yaml: neutral hooks only (whitespace, EOF, YAML/TOML syntax, large-file guard); no formatters or linters yet Kept: - docs/development/vyos_api/: JSON reference for the VyOS HTTPS API, useful for future contract tests Tests still pass: 57/57.
Diffstat (limited to 'sphinx/source')
-rw-r--r--sphinx/source/conf.py36
-rw-r--r--sphinx/source/index.rst214
-rw-r--r--sphinx/source/pyvyos.rst21
3 files changed, 0 insertions, 271 deletions
diff --git a/sphinx/source/conf.py b/sphinx/source/conf.py
deleted file mode 100644
index ff95b65..0000000
--- a/sphinx/source/conf.py
+++ /dev/null
@@ -1,36 +0,0 @@
-# Configuration file for the Sphinx documentation builder.
-#
-# For the full list of built-in configuration values, see the documentation:
-# https://www.sphinx-doc.org/en/master/usage/configuration.html
-
-# -- Project information -----------------------------------------------------
-# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
-
-project = "pyvyos"
-copyright = "2024, Roberto Berto"
-author = "Roberto Berto"
-release = "0.3.0"
-
-# -- General configuration ---------------------------------------------------
-# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
-
-templates_path = ["_templates"]
-exclude_patterns = []
-
-
-# -- Options for HTML output -------------------------------------------------
-# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
-
-html_theme = "sphinx_rtd_theme"
-html_static_path = ["_static"]
-
-
-import os
-import sys
-
-sys.path.insert(0, os.path.abspath("../../"))
-
-extensions = [
- "sphinx.ext.autodoc",
- "sphinx_rtd_theme",
-]
diff --git a/sphinx/source/index.rst b/sphinx/source/index.rst
deleted file mode 100644
index 05c2aa0..0000000
--- a/sphinx/source/index.rst
+++ /dev/null
@@ -1,214 +0,0 @@
-.. PyVyOS documentation master file, created by
- sphinx-quickstart on Wed Dec 13 13:02:59 2023.
- You can adapt this file completely to your liking, but it should at least
- contain the root `toctree` directive.
-
-PyVyOS - documentation
-==================================
-
-.. toctree::
- :maxdepth: 2
- :caption: Contents:
-
-pyvyos
-======
-
-.. toctree::
- :maxdepth: 4
-
- pyvyos
-
-PyVyOS Usage
-==================
-
-.. _pyvyos-documentation:
-
-PyVyOS Documentation
-====================
-
-PyVyOS is a Python library for interacting with VyOS devices via their API. This documentation provides a guide on how to use PyVyOS to manage your VyOS devices programmatically.
-
-Installation
-------------
-
-You can install PyVyOS using pip:
-
-.. code-block:: bash
-
- pip install pyvyos
-
-Getting Started
----------------
-
-Importing and Disabling Warnings for verify=False
---------------------------------------------------
-
-Before using PyVyOS, it's a good practice to disable urllib3 warnings and import the required modules, IF you use verify=False:
-
-.. code-block:: python
-
- import urllib3
- urllib3.disable_warnings()
-
-Using API Response Class
-------------------------
-
-PyVyOS uses a custom `ApiResponse` data class to handle API responses:
-
-.. code-block:: python
-
- @dataclass
- class ApiResponse:
- status: int
- request: dict
- result: dict
- error: str
-
-Initializing a VyDevice Object
-------------------------------
-
-To interact with your VyOS device, you'll need to create an instance of the `VyDevice` class. You can set up your device using the following code, assuming you've stored your credentials as environment variables:
-
-.. code-block:: python
-
- from dotenv import load_dotenv
-
- # Load environment variables from a .env file
- load_dotenv()
-
- # Retrieve VyOS device connection details from environment variables
- hostname = os.getenv('VYDEVICE_HOSTNAME')
- apikey = os.getenv('VYDEVICE_APIKEY')
- port = os.getenv('VYDEVICE_PORT')
- protocol = os.getenv('VYDEVICE_PROTOCOL')
- verify_ssl = os.getenv('VYDEVICE_VERIFY_SSL')
-
- # Convert the verify_ssl value to a boolean
- verify = verify_ssl.lower() == "true" if verify_ssl else True
-
- # Create an instance of the VyOS device
- device = VyDevice(hostname=hostname, apikey=apikey, port=port, protocol=protocol, verify=verify)
-
-Using PyVyOS
-------------
-
-Once you have created a VyDevice object, you can use it to interact with your VyOS device using various methods provided by the library.
-
-Reset
------
-
-The reset method allows you to run a reset command:
-
-.. code-block:: python
-
- # Execute the reset command
- response = device.reset(path=["conntrack-sync", "internal-cache"])
-
- # Check for errors and print the result
- if not response.error:
- print(response.result)
-
-Retrieve Show Configuration
----------------------------
-
-The retrieve_show_config method retrieves the VyOS configuration:
-
-.. code-block:: python
-
- # Retrieve the VyOS configuration
- response = device.retrieve_show_config(path=[])
-
- # Check for errors and print the result
- if not response.error:
- print(response.result)
-
-Retrieve Return Values
-------------------------
-
-.. code-block:: python
-
- # Retrieve VyOS return values for a specific interface
- response = device.retrieve_return_values(path=["interfaces", "dummy", "dum1", "address"])
- print(response.result)
-
-Configure Delete
-----------------
-
-.. code-block:: python
-
- # Delete a VyOS interface configuration
- response = device.configure_delete(path=["interfaces", "dummy", "dum1"])
-
-Generate
-----------
-
-.. code-block:: python
-
- # Generate an SSH key with a random string in the name
- randstring = ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(20))
- keyrand = f'/tmp/key_{randstring}'
- response = device.generate(path=["ssh", "client-key", keyrand])
-
-Show
-------
-
-.. code-block:: python
-
- # Show VyOS system image information
- response = device.show(path=["system", "image"])
- print(response.result)
-
-Reset
-------
-
-.. code-block:: python
-
- # Reset VyOS with specific parameters
- response = device.reset(path=["conntrack-sync", "internal-cache"])
-
-Configure Set
--------------
-
-The configure_set method sets a VyOS configuration:
-
-.. code-block:: python
-
- # Set a VyOS configuration
- response = device.configure_set(path=["interfaces ethernet eth0 address '192.168.1.1/24'"])
-
- # Check for errors and print the result
- if not response.error:
- print(response.result)
-
-Config File Save
-----------------
-
-.. code-block:: python
-
- # Save VyOS configuration without specifying a file (default location)
- response = device.config_file_save()
-
-Config File Save with custom filename
--------------------------------------
-
-.. code-block:: python
-
- # Save VyOS configuration to a specific file
- response = device.config_file_save(file="/config/test300.config")
-
-Config File Load
-----------------
-
-.. code-block:: python
-
- # Load VyOS configuration from a specific file
- response = device.config_file_load(file="/config/test300.config")
-
-
-
-Indices and tables
-==================
-
-* :ref:`genindex`
-* :ref:`modindex`
-* :ref:`search` \ No newline at end of file
diff --git a/sphinx/source/pyvyos.rst b/sphinx/source/pyvyos.rst
deleted file mode 100644
index fc02f1a..0000000
--- a/sphinx/source/pyvyos.rst
+++ /dev/null
@@ -1,21 +0,0 @@
-pyvyos package
-==============
-
-Submodules
-----------
-
-pyvyos.device module
---------------------
-
-.. automodule:: pyvyos.device
- :members:
- :undoc-members:
- :show-inheritance:
-
-Module contents
----------------
-
-.. automodule:: pyvyos
- :members:
- :undoc-members:
- :show-inheritance: