Skip to main content

A simple Python Sympa API

Project description

Small wrapper that uses ZEEP to communicate with a SOAP endpoint linked to a Sympa server, to let automation in lists creation.

Example

Start by creating a new client, and log in. Then, you can use some pre-constructed methods.

from sympasoap import Client

client = Client("https://lists.example.com/sympa")
client.login("admin@example.com", "MY_STRONG_PASSWORD")     # Get from env

# Create a list of type hotline that is named automatically-created@lists.example.com with basic description
client.create_list(list_name="automatically-created", subject="Automatically created list", template="hotline",
        description="This mailing list was created from a Python shell.", topic="computers/software")

# Subscribe the email address toto@example.com with name "Toto TOTO" to the list automatically-created@lists.example.com
# in non-quiet mode: the user will receive a notification that they got subscribed
client.subscribe(email="toto@example.com", list_address="automatically-created", quiet=False, name="Toto TOTO")

# Unsubscribe the email in quiet mode
client.subscribe(email="toto@example.com", list_address="automatically-created", quiet=True)

Available functions

def login(self, email: str, password: str) -> None:
    """
    Login into the API. Set a cookie for future connexions.
    """

def check_cookie(self) -> str:
    """
    From the current stored cookie, retrieve the email address.
    """

def is_subscriber(self, email: str, mailing_list: str, function: str = "subscriber") -> bool:
    """
    Check if the given `email` is a member of type `function` in the `mailing_list`.
    The function parameter is one between subscriber, editor or owner.
    """

def get_subscribers(self, mailing_list: str, emails_only: bool = True) -> list:
    """
    Get the list of all subscribers of a list, including the administrators and the editors.
    If emails_only == True, retrieve the list of email addresses only.
    Else, retrieve MLUser object, with the name of the user and the role.
    """

def lists(self, topic: str, subtopic: str) -> list:
    """
    Get all the (visible) lists that match the given topic and the given subtopic.
    See TOPICS and SUBTOPICS for valid topics and subtopics.
    """

def all_lists(self) -> list:
    """
    Retrieve all lists.
    """

def create_list(self, list_name: str, subject: str, template: str, description: str, topic: str,
                use_custom_template: bool = False, raise_error: bool = True) -> bool:
    """
    Create a new mailing-list.
    """

def delete_list(self, list_name: str, raise_error: bool = False) -> bool:
    """
    Close a mailing list.
    Warning: the list is not deleted in order to keep the history. Please use the web interface to fully
    delete the list.
    Well, the main reason is that the API does not provide a delete method.
    """

def subscribe(self, email: str, list_address: str, quiet: bool, name: str = "", raise_error: bool = False) -> bool:
    """
    Subscribe the user with the given email to the given mailing list.
    If the quiet mode is enabled, the user won't receive a notification that they got subscribed.
    """

def unsubscribe(self, email: str, list_address: str, quiet: bool, raise_error: bool = False) -> bool:
    """
    Subscribe the user with the given email to the given mailing list.
    If the quiet mode is enabled, the user won't receive a notification that they got subscribed.
    """

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

sympasoap-1.0.0.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

sympasoap-1.0.0-py3-none-any.whl (18.4 kB view details)

Uploaded Python 3

File details

Details for the file sympasoap-1.0.0.tar.gz.

File metadata

  • Download URL: sympasoap-1.0.0.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.6

File hashes

Hashes for sympasoap-1.0.0.tar.gz
Algorithm Hash digest
SHA256 34b13cfc0b0fdfa99a43605aa9d115d610a69889b69c3f18288b4717bceab2f9
MD5 496f927818830ca4c1fb96f66067b8a3
BLAKE2b-256 8193add84af5e2b03ed99cb67b7bc2b695881747ba2b3df973b86a8952a3d582

See more details on using hashes here.

Provenance

File details

Details for the file sympasoap-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: sympasoap-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 18.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.6

File hashes

Hashes for sympasoap-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 18dae58f8c196d7a3f6d4f96f313f93f334e09befe13b8366592ab614070653b
MD5 f70db58c183e5a68b422d69715a7b9b4
BLAKE2b-256 6a829e3434c636badf294b9fc77f16a0524459166c49013ca0068d77e0595619

See more details on using hashes here.

Provenance

Supported by

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