Skip to main content

Data retrieval, template manager and delivery all in one!

Project description

Quipus, data retrieval, template manager and delivery all in one!

Package version Supported Python versions Pylint


Documentation: TBD

Source Code: https://github.com/Monkey-Market/quipus


Quipus is a Python package that allows you to retrieve data from different sources, manage templates and deliver them in a single package. It is designed to be simple and easy to use, with a focus on performance and reliability.

Key features:

  • Data retrieval: Retrieve data from different sources such as databases, APIs, and files.
  • Template manager: Manage templates for different types of documents.
  • Delivery: Deliver the generated documents to different destinations such as email, file system, cloud storage and more.
  • Easy to use: Simple and easy to use package with a focus on developer experience.

Requirements & Dependencies

Quipus is empowered by the foundational work of industry giants. The following are the key dependencies:

Installation

You can install Quipus using pip:

pip install quipus

Or with poetry:

poetry add quipus

Usage Example

Import the package
import quipus as qp
Fetch data from CSV and generate PDFs
template_manager = (
    qp.TemplateManager()
    .from_csv("data/data_source.csv")
    .with_template(qp.Template("templates/pdf_template.html"))
    .decide_filename_with(lambda data: f"{data['name']}")
    .to_pdf(output_path="output", create_dir=True)
)
Set up SMTP configuration

Note: These can be set up as environment variables for security reasons.

smtp_config = qp.SMTPConfig(
    server="smtp.server.com",
    port=587,
    username="username",
    password="password",
    use_tls=True,
)
email_sender = qp.EmailSender(smtp_config)
Send emails with attachments
for item in template_manager.data:
    smtp_message = (
        qp.EmailMessageBuilder(
            from_address="example@sender.com", 
            to_addresses=[item["email"], "another_email@example.com"]
        )
        .with_body_path("templates/email_body_template.html", "html", item)
        .with_subject("Your email subject")
        .add_attachment_from_path(f"output/{item['name']}.pdf")
        .build()
    )
    email_sender.send(smtp_message)

This is a simple example of how you can use Quipus to fetch data from a CSV file, generate PDFs using a template, and send emails with the generated PDFs as attachments.

Contributing

Contributions are welcome! Please read our contributing guidelines for more information.

You can always open an issue or submit a pull request if you have any suggestions or improvements.

Contributors


Jorge U. Alarcón


Fernando Nicolás


License

This project is licensed under the terms of the GNU General Public License v3.0.

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

quipus-0.2.1.tar.gz (31.3 kB view details)

Uploaded Source

Built Distribution

quipus-0.2.1-py3-none-any.whl (35.9 kB view details)

Uploaded Python 3

File details

Details for the file quipus-0.2.1.tar.gz.

File metadata

  • Download URL: quipus-0.2.1.tar.gz
  • Upload date:
  • Size: 31.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.7 Linux/6.5.0-1025-azure

File hashes

Hashes for quipus-0.2.1.tar.gz
Algorithm Hash digest
SHA256 27d05d60ce2c1b8e097c794167addbe8d7e38f71559c08ba01838ca7ca413e4d
MD5 4a2c7096f9c55c68c906bb1b8dd76fee
BLAKE2b-256 5297b971dfb494674e2c4200088d95529d5f1b40bb03dccd04816f9ea2de7e05

See more details on using hashes here.

File details

Details for the file quipus-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: quipus-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 35.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.7 Linux/6.5.0-1025-azure

File hashes

Hashes for quipus-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9760e4a2115b6af3c8e5b2ffd8e3503bcd65f0111ec0a64b92c66eda8c700d2e
MD5 fd2e73478f96ee66f4b4dd572230fdb1
BLAKE2b-256 c57618381b26b0d7bf426c5950b2a14dcd5df186cbb2e39217944b6cba357079

See more details on using hashes here.

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