Compare commits

...

7 Commits
0.0.1 ... 0.0.7

Author SHA1 Message Date
Josiah Baldwin
33680dab5d Updated __init__ imports 2024-12-02 13:02:15 -08:00
Josiah Baldwin
05f1bae04d Changed pypi name to libmeshctrl because meshctrl is taken 2024-12-02 12:40:42 -08:00
Josiah Baldwin
b0b89b89e6 Fixed install_requires 2024-12-02 12:20:58 -08:00
Josiah Baldwin
fdc2b11afd Added note that proxy is not yet implemented 2024-12-02 11:59:54 -08:00
Josiah Baldwin
4ed332ca4c Fixed readme link 2024-12-02 11:52:52 -08:00
Josiah Baldwin
5f0f6a0ff9 Changed to RST README only 2024-12-02 11:47:45 -08:00
Josiah Baldwin
c576eae48b Fixed some doc links 2024-12-02 11:33:56 -08:00
6 changed files with 64 additions and 21 deletions

View File

@@ -1,2 +0,0 @@
# meshctrl
Libmeshctrl implementation in python

View File

@@ -29,15 +29,60 @@
|
=============
meshctrl
=============
========
Library for remotely interacting with a
`MeshCentral <https://meshcentral.com/>`__ server instance
Libmeshctrl implementation in python
Installation
------------
pip install meshctrl
Usage
-----
This module is implemented as a primarily asynchronous library
(asyncio), mostly through the ``Session`` class, which is exported as
default. Because the library is asynchronous, you must wait for it to be
initialized before interacting with the server. The preferred way to do
this is to use the async context manager pattern:
.. code:: python
import meshctrl
async with meshctrl.session.Session(url, **options):
print(await session.list_users())
...
However, if you prefer to instantiate the object yourself, you can
simply use the ``initialized`` property:
.. code:: python
session = meshctrl.session.Session(url, **options)
await session.initialized.wait()
Note that, in this case, you will be rquired to clean up tho session
using its ``close`` method.
Session Parameters
------------------
``url``: URL of meshcentral server to connect to. Should start with
either "ws://" or "wss://".
``options``: optional parameters. Described at `Read the
Docs <https://pylibmeshctrl.readthedocs.io/en/latest/api/meshctrl.html#module-meshctrl.session>`__
API
---
API is documented in the `API
Docs <https://pylibmeshctrl.readthedocs.io/en/latest/api/meshctrl.html>`__
This is a library for interacting with a Mesh Central instance programatically. Written in python.
.. _pyscaffold-notes:

Binary file not shown.

View File

@@ -4,24 +4,19 @@
# https://setuptools.pypa.io/en/latest/references/keywords.html
[metadata]
name = meshctrl
description = Add a short description here!
name = libmeshctrl
description = Python package for interacting with a Meshcentral server instance
author = Josiah Baldwin
author_email = jbaldwin8889@gmail.com
license = MIT
license_files = LICENSE.txt
long_description = file: README.rst
long_description_content_type = text/x-rst; charset=UTF-8
url = https://github.com/pyscaffold/pyscaffold/
url = https://github.com/HuFlungDu/pylibmeshctrl/
# Add here related links, for example:
project_urls =
Documentation = https://pyscaffold.org/
# Source = https://github.com/pyscaffold/pyscaffold/
# Changelog = https://pyscaffold.org/en/latest/changelog.html
# Tracker = https://github.com/pyscaffold/pyscaffold/issues
# Conda-Forge = https://anaconda.org/conda-forge/pyscaffold
# Download = https://pypi.org/project/PyScaffold/#files
# Twitter = https://twitter.com/PyScaffold
Documentation = https://pylibmeshctrl.readthedocs.io/
Source = https://github.com/HuFlungDu/pylibmeshctrl/
# Change if running only on Windows, Mac or Linux (comma-separated)
platforms = any
@@ -41,14 +36,16 @@ package_dir =
=src
# Require a min/specific Python version (comma-separated conditions)
# python_requires = >=3.8
python_requires = >=3.8
# Add here dependencies of your project (line-separated), e.g. requests>=2.2,<3.0.
# Version specifiers like >=2.2,<3.0 avoid problems due to API changes in
# new major versions. This works if the required packages follow Semantic Versioning.
# For more information, check out https://semver.org/.
install_requires =
importlib-metadata; python_version<"3.8"
importlib-metadata
cryptography>=43.0.3
websockets>=13.1
[options.packages.find]

View File

@@ -15,10 +15,13 @@ except PackageNotFoundError: # pragma: no cover
finally:
del version, PackageNotFoundError
from . import session
from .session import Session
from . import constants
from . import shell
from . import tunnel
from . import util
from . import files
from . import exceptions
from . import exceptions
from . import device
from . import mesh
from . import user_group

View File

@@ -28,7 +28,7 @@ class Session(object):
domain (str): Domain to connect to
password (str): Password with which to connect. Can also be password generated from token.
loginkey (str|bytes): Key from already handled login. Overrides username/password.
proxy (str): "url:port" to use for proxy server
proxy (str): "url:port" to use for proxy server NOTE: This is currently not implemented due to a limitation of the undersying websocket library. Upvote the issue if you find this important.
token (str): Login token. This appears to be superfluous
ignore_ssl (bool): Ignore SSL errors