Automated Integration Testing and Live Documentation for your API

Overview

CircleCI Codecov PyPI version Discord

A library for your API that provides:

  • Automated Integration Testing
  • Automated Live Documentation

Given an API specification, written in YAML/JSON format, ScanAPI hits the specified endpoints, runs the test cases, and generates a detailed report of this execution - which can also be used as the API documentation itself.

With almost no Python knowledge, the user can define endpoints to be hit, the expected behavior for each response and will receive a full real-time diagnostic report of the API!

Contents

Requirements

How to install

$ pip install scanapi

Basic Usage

You will need to write the API's specification and save it as a YAML or JSON file. For example:

endpoints:
  - name: scanapi-demo # The API's name of your API
    path: http://demo.scanapi.dev/api/ # The API's base url
    requests:
      - name: list_all_devs # The name of the first request
        path: devs/ # The path of the first request
        method: get # The HTTP method of the first request
        tests:
          - name: status_code_is_200 # The name of the first test for this request
            assert: ${{ response.status_code == 200 }} # The assertion

And run the scanapi command

$ scanapi run <file_path>

Then, the lib will hit the specified endpoints and generate a scanapi-report.html file with the report results.

An overview screenshot of the report. A screenshot of the report showing the request details. A screenshot of the report showing the response and test details

Documentation

The full documentation is available at scanapi.dev

Examples

You can find complete examples at scanapi/examples!

This tutorial helps you to create integration tests for your REST API using ScanAPI

Watch the video

Contributing

Collaboration is super welcome! We prepared the Newcomers Guide to help you in the first steps. Every little bit of help counts! Feel free to create new GitHub issues and interact here.

Let's build it together 🚀

Comments
  • feat: add pre-commit hook to check if follow conventional commits (#438)

    feat: add pre-commit hook to check if follow conventional commits (#438)

    Description

    Added a pre-commit hook to check if follow the conventional commits.

    Motivation behind this PR?

    QA

    What type of change is this?

    Check if commit message follow the conventional commits.

    Checklist

    • [x] I have added a changelog entry / my PR does not need a new changelog entry. Instructions.
    • [ ] I have added/updated unit tests. Instructions.
    • [ ] New and existing unit tests pass locally with my changes. Instructions
    • [ ] I have self-documented code my changes by adding docstring(s) and comment(s). Instructions
    • [x] Current PR does not significantly decrease the code coverage and docstring coverage.
    • [x] My code follows the style guidelines of this project.
    • [ ] I have run ScanAPI locally and manually tested my changes. Instructions.

    Issue

    Closes #438

    opened by hebertjulio 17
  • ADR 2: How to show test results in the html report

    ADR 2: How to show test results in the html report

    Architecture Decision Review - ADR

    • How are we going to show the tests in the html report
    • Which color should we use?
    • How are we going to show each test case?
    • How are we going to show if a test passed?
    • How are we going to show if a test failed?
    • Should we use HTTP methods with color? Yes or No?

    This discussion started here

    Related ADR: #164

    ADR 
    opened by camilamaia 16
  • Publish Sphinx Documentation

    Publish Sphinx Documentation

    Publish Sphinx Documentation

    The #230 implemented the auto-generated code documentation using sphinx.

    We can run it locally by running

    $ cd documentation
    $ make html
    

    And we can access it opening the file scanapi/documentation/build/html/index.html in a browser.

    This is great, but it would be nice to have this documentation published somewhere else. One option would be to publish it inside our website scanapi.dev, repository: https://github.com/scanapi/website

    Documentation 
    opened by camilamaia 13
  • Add anchor link for each request in the report to make it easily shareable

    Add anchor link for each request in the report to make it easily shareable

    It would be nice to have anchor links available at each request in the report.

    To share a specific request that needs review would be easier than having to scan (pun intended) through the entire report.

    Feature Good First Issue Reporter Hacktoberfest 
    opened by loop0 11
  • ADR 6: How to integrate feature that converts OpenAPI file to ScanAPI file

    ADR 6: How to integrate feature that converts OpenAPI file to ScanAPI file

    Architecture Decision Review - ADR

    We want to implement the feature of receiving a JSON OpenAPI spec and convert it into a ScanAPI spec file.

    Receive a json OpenAPI spec -> return an api.yaml file
    

    Feature issue: https://github.com/scanapi/scanapi/issues/12

    But we need to discuss how we will integrate it into the main project. Some options that came into my mind:

    Option 1

    A new command like: $ scanapi init OPENAPI_PATH. And leave the main command as it is.

    (we would need to investigate if it is easy to do that with Click, but I believe with groups is quite feasible.)

    Option 2

    A new command like: $ scanapi init OPENAPI_PATH and change the main command to something like $ scanapi run SPEC_PATH

    (we would need to investigate if it is easy to do that with Click, but I believe with groups is quite feasible.)

    Option 3

    A new command like: $ scanapi-init OPENAPI_PATH. And leave the main command as it is

    (This would be pretty easy to implement with Click)


    Maybe generate instead of init, don't know 🤷‍♀️

    I like the options 1 and 2. For me, the downside of 2 is that we would need to change the way it is now. And the downside of 1 is that for some cases we will use scanapi directly and for other with another command, which is not so intuitive and it is also not a pattern. Option 3 is easier but I dislike it because it is ugly 😂

    Do you have more ideas? What do you think about this ones? @barbosa @gillianomenezes @djalmaaraujo @abreumatheus

    ADR 
    opened by camilamaia 11
  • VSCode extension for ScanAPI IntelliSense

    VSCode extension for ScanAPI IntelliSense

    Given that ScanAPI already has a predefined yml structure, we could have a VSCode extension that autocompletes keys (endpoints, method, path, etc) based on where you are in the spec tree.

    This would require further investigation to see what can be achieved but the following links should give some clarity:

    • https://code.visualstudio.com/api/language-extensions/overview
    • https://code.visualstudio.com/api/language-extensions/programmatic-language-features
    Feature 
    opened by barbosa 11
  • There are some option to set verify=False to requests?

    There are some option to set verify=False to requests?

    Environment

    • Operating System: Linux Xubuntu 16.04
    • Python version: 3.6

    What you intend to do with scanapi ?

    A want make a request to web server running locally with HTTPS enabled, but I need some way to make requests dont verify SSL.

    I need something like that? requests.post(url='https://example.com', data={'bar':'baz'}, verify=False)

    Expected behavior ?

    There are some option for me reach that, saying to requests include 'verify=False'?

    I'm trying to avoid this error:

    Error to make request https://127.0.0.1:443/auth/authenticate. HTTPSConnectionPool(host='127.0.0.1', port=443): Max retries exceeded with url: /auth/authenticate (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777)'),))

    Thanks in advance!


    scanapi has a discord server so feel free to join and say 👋 hello. Maybe share the issue link?

    Feature 
    opened by samueltcsantos 10
  • Update the README file with the new demo api version

    Update the README file with the new demo api version

    Description

    Update the sample yaml file

    Motivation behind this PR?

    What type of change is this?

    Checklist

    • [ ] I have added a changelog entry / my PR does not need a new changelog entry. Instructions.
    • [ ] I have added/updated unit tests. Instructions.
    • [ ] New and existing unit tests pass locally with my changes. Instructions
    • [ ] I have self-documented code my changes by adding docstring(s) and comment(s). Instructions
    • [x] Current PR does not significantly decrease the code coverage and docstring coverage.
    • [ ] My code follows the style guidelines of this project.
    • [ ] I have run ScanAPI locally and manually tested my changes. Instructions.

    Issue

    Closes #368

    First Contribution 
    opened by renato04 10
  • Add the link icon to copy anchor URL

    Add the link icon to copy anchor URL

    Add the link icon to copy anchor URL

    Anchor link was already implemented by PR https://github.com/scanapi/scanapi/pull/317. Now we need add an icon to each endpoint which the user can click and copy the anchor url.

    Something similar of what github has:

    image

    The result would be something like this:

    image

    Related to: #260

    Feature Reporter Hacktoberfest 
    opened by camilamaia 10
  • Add video to readme.md

    Add video to readme.md

    Hi guys, recently @camilamaia has been create an video speak about ScanApi. will we add the video in readme on example session?

    image

    Video link: https://www.youtube.com/watch?v=JIo4sA8LHco&t=2s

    ADR 
    opened by marcuxyz 10
  • ScanAPI spec from an OpenAPI specification

    ScanAPI spec from an OpenAPI specification

    Refers to: [#12 ]

    Added

    • Command convert, to convert a OpenAPI JSON file to a ScanAPI YAML friendly file;

    Changed

    • Command scanapi to scanapi run;
    • Updated documentation to include changes and the new feature;
    opened by abreumatheus 10
  • chore(deps): bump certifi from 2021.5.30 to 2022.12.7

    chore(deps): bump certifi from 2021.5.30 to 2022.12.7

    Bumps certifi from 2021.5.30 to 2022.12.7.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • feat: change requests to httpx

    feat: change requests to httpx

    Description

    Change requests to httpx

    Motivation behind this PR?

    #208

    What type of change is this?

    Feature

    Checklist

    • [x] I have added a changelog entry / my PR does not need a new changelog entry. Instructions.
    • [x] I have added/updated unit tests. Instructions.
    • [x] New and existing unit tests pass locally with my changes. Instructions
    • [x] I have self-documented code my changes by adding docstring(s) and comment(s). Instructions
    • [x] Current PR does not significantly decrease the code coverage and docstring coverage.
    • [x] My code follows the style guidelines of this project.
    • [x] I have run ScanAPI locally and manually tested my changes. Instructions.
    • [x] I have squashed my commits. Instructions.

    Issue

    Closes #208

    opened by taconi 1
  • fix: custom variable evaluated when defined on the path (#508)

    fix: custom variable evaluated when defined on the path (#508)

    Description

    Custom variable will be evaluated when defined in the path

    Motivation behind this PR?

    #508

    What type of change is this?

    Bug fix

    Checklist

    • [X] I have added a changelog entry / my PR does not need a new changelog entry. Instructions.
    • [X] I have added/updated unit tests. Instructions.
    • [X] New and existing unit tests pass locally with my changes. Instructions
    • [ ] I have self-documented code my changes by adding docstring(s) and comment(s). Instructions
    • [X] Current PR does not significantly decrease the code coverage and docstring coverage.
    • [X] My code follows the style guidelines of this project.
    • [X] I have run ScanAPI locally and manually tested my changes. Instructions.
    • [X] I have squashed my commits. Instructions.

    Issue

    Closes #508

    First Contribution 
    opened by taconi 0
  • Add --insecure flag in curl based on request options

    Add --insecure flag in curl based on request options

    Description

    Add the --insecure flag in curl based on request options

    Motivation behind this PR?

    Closes #554

    What type of change is this?

    Bug fix

    Checklist

    • [x] I have added a changelog entry / my PR does not need a new changelog entry. Instructions.
    • [x] I have added/updated unit tests. Instructions.
    • [x] New and existing unit tests pass locally with my changes. Instructions
    • [x] I have self-documented code my changes by adding docstring(s) and comment(s). Instructions
    • [x] Current PR does not significantly decrease the code coverage and docstring coverage.
    • [x] My code follows the style guidelines of this project.
    • [x] I have run ScanAPI locally and manually tested my changes. Instructions.
    • [x] I have squashed my commits. Instructions.

    Issue

    Closes #554

    First Contribution 
    opened by Crocmagnon 1
  • curl generation doesn't take verify: false into account

    curl generation doesn't take verify: false into account

    Bug report

    Environment

    • Operating System: not relevant
    • Python version: not relevant

    Description of the bug

    When using verify: false, the curl command generated without the --inscure / -k flag.

    Expected behavior ?

    The generated curl should include --insecure / -k when the request is not verified.

    How to reproduce the the bug ?

    endpoints:
      - name: scanapi-demo
        path: http://demo.scanapi.dev/api/
        options:
            verify: false
        requests:
          - name: list_all_devs
            path: devs/
            method: get
    

    then

    scanapi run
    

    Then observe the genreated curl.

    Anthing else we need to know?

    curlify2 supports a verify argument on the to_curl method: https://github.com/marcuxyz/curlify2/blob/fc0fd402f77dea7c8c28840eeaa2886dc287f040/curlify2/curlify.py#L1

    Bug Needs Triage 
    opened by Crocmagnon 1
  • Field Content is not being displayed properly on Chrome

    Field Content is not being displayed properly on Chrome

    Bug report

    Environment

    • ScanAPI version: 2.7.0
    • Chrome Version 102.0.5005.61 (Official Build) (arm64)

    Description of the bug

    When generating a report, the field CONTENT of the RESPONSE section is not being displayed properly

    image

    Also, the copy button is not working

    image

    Expected behavior?

    How to reproduce the bug ?

    Can be reproduced by generating a report or checking the reports generated on the ScanAPI examples job on GitHub actions. For example https://github.com/scanapi/scanapi/actions/runs/2426475658. Open the report on Chrome.

    Bug Reporter 
    opened by camilamaia 2
Releases(v2.8.0)
  • v2.8.0(Aug 11, 2022)

  • v2.7.0(Jun 2, 2022)

  • v2.6.2(Jun 1, 2022)

  • v2.6.1(Apr 12, 2022)

    Changed

    • Implement new details to help users on visualize related request data. #506

    Fixed

    • Fix the --browser flag not working on macOS #504
    • Error on running ScanAPI. ImportError: cannot import name 'soft_unicode' from 'markupsafe' #534
    Source code(tar.gz)
    Source code(zip)
  • v2.6.0(Aug 13, 2021)

  • v2.5.0(Jul 23, 2021)

  • v2.4.0(Jun 11, 2021)

    Added

    • Request name to report. #390
    • Show on report the scanapi version used to generate it. #386
    • Link icon to copy anchor URL. #398

    Fixed

    • Error making request when request has no body and there is a report::hide_request::body configuration. #393
    Source code(tar.gz)
    Source code(zip)
  • v2.3.0(May 27, 2021)

  • v2.2.0(Apr 22, 2021)

    Added

    • Hide sensitive information in the URL Query Params #304
    • Anchor link for each request in the report to make it easily shareable. #317
    • Support to HTTP methods HEAD and OPTIONS #350
    • The retry key under requests to setup retry for requests. #298

    Fixed

    • Curl command #330
    • Render body according to its request content type #331
    Source code(tar.gz)
    Source code(zip)
  • v2.1.0(Oct 6, 2020)

    Added

    • Add a delay key option to perform a delay between each request. #266

    Changed

    • Changed relative path to show absolute path to the report in CLI. #277
    • Considering - (dash) in variable names. #281
    • Moved bandit to dev section #285
    • Increased Test coverage for /scanapi/evaluators/spec_evaluator.py #291

    Fixed

    • When there is no body specified, sending it as None instead of {}. #280
    • Removed unused imports. #294
    Source code(tar.gz)
    Source code(zip)
  • v2.0.0(Aug 25, 2020)

    Added

    • JSON response is now properly rendered, instead of plain text. #213
    • The report page now has a favicon. #223
    • Bandit security audit tool. #219
    • Add Sphinx auto-documentation. #230
    • Add workflow to package/publish to Test PyPi. #239

    Changed

    • Renamed api.(yaml|json) to scanapi.yaml. #222
    • Remove top-level api key in scanapi.yaml. #231
    • Renamed project-name, hide-request and hide-response to use underscore. #228
    • Changed command scanapi spec-file.yaml to scanapi run spec-file.yaml. #247
    • Moved Documentation from README.md to the website. #250
    • Local and global configuration. #254

    Fixed

    • Updated language use in README.md and CONTRIBUTING.md plus fix broken links. #220
    • Removed unused sys import in scan.py and cleaned for PEP8 and spelling errors. #217
    • Hide body sensitive information. #238
    • Fix css issues with html template. #256
    • Fix when vars is declared and used in the same request.#257
    • Fix when evaluated value is not string. #257

    Removed

    • APIKeyMissingError. #218
    Source code(tar.gz)
    Source code(zip)
  • v2.0.0-rc.1(Aug 25, 2020)

    Added

    • JSON response is now properly rendered, instead of plain text. #213
    • The report page now has a favicon. #223
    • Bandit security audit tool. #219
    • Add Sphinx auto-documentation. #230
    • Add workflow to package/publish to Test PyPi. #239

    Changed

    • Renamed api.(yaml|json) to scanapi.yaml. #222
    • Remove top-level api key in scanapi.yaml. #231
    • Renamed project-name, hide-request and hide-response to use underscore. #228
    • Changed command scanapi spec-file.yaml to scanapi run spec-file.yaml. #247
    • Moved Documentation from README.md to the website. #250
    • Local and global configuration. #254

    Fixed

    • Updated language use in README.md and CONTRIBUTING.md plus fix broken links. #220
    • Removed unused sys import in scan.py and cleaned for PEP8 and spelling errors. #217
    • Hide body sensitive information. #238
    • Fix css issues with html template. #256
    • Fix when vars is declared and used in the same request.#257
    • Fix when evaluated value is not string. #257

    Removed

    • APIKeyMissingError. #218
    Source code(tar.gz)
    Source code(zip)
  • v1.0.5rc2(Aug 25, 2020)

    Added

    • JSON response is now properly rendered, instead of plain text. #213
    • The report page now has a favicon. #223
    • Bandit security audit tool. #219
    • Add Sphinx auto-documentation. #230
    • Add workflow to package/publish to Test PyPi. #239

    Changed

    • Renamed api.(yaml|json) to scanapi.yaml. #222
    • Remove top-level api key in scanapi.yaml. #231
    • Renamed project-name, hide-request and hide-response to use underscore. #228
    • Changed command scanapi spec-file.yaml to scanapi run spec-file.yaml. #247
    • Moved Documentation from README.md to the website. #250
    • Local and global configuration. #254

    Fixed

    • Updated language use in README.md and CONTRIBUTING.md plus fix broken links. #220
    • Removed unused sys import in scan.py and cleaned for PEP8 and spelling errors. #217
    • Hide body sensitive information. #238

    Removed

    • APIKeyMissingError. #218
    Source code(tar.gz)
    Source code(zip)
  • v1.0.5(Jul 18, 2020)

  • v1.0.3(Jun 25, 2020)

  • v1.0.2(Jun 25, 2020)

  • v1.0.1(Jun 25, 2020)

  • v1.0.0(Jun 25, 2020)

    Added

    • Add new HTML template #157
    • Tests key #152
    • -h alias for --help option #172
    • Test results to report #177
    • Add test errors to the report #187
    • Hides sensitive info in URL #185
    • CLI options explanation #189

    Changed

    • Unified keys validation in a single method #151
    • Default template to html #173
    • Project name color on html reporter to match ScanAPI brand #172
    • Hero banner on README #180
    • Entry point to scanapi:main #172
    • --spec-path option to argument #172
    • Improve test results on report #186
    • Improve Error Message for Invalid Python code error #187
    • Handle properly exit errors #187
    • Update README.md #191

    Fixed

    • Duplicated status code row from report #183
    • Sensitive information render on report #183

    Removed

    • Console Report #175
    • Markdown Report #179
    • --reporter option #179
    Source code(tar.gz)
    Source code(zip)
  • v0.1.0(May 14, 2020)

  • v0.0.19(May 11, 2020)

    Added

    • PATCH HTTP method - #77
    • Ability to have API spec in multiples files - #125
    • CLI --config-path option - #128
    • CLI --template-path option - #126
    • GitHub Action checking for missing changelog entry - #134

    Changed

    • Make markdown report a bit better - #96
    • base_url keyword to path #116
    • namespace keyword to name #116
    • method keyword is not mandatory anymore for requests. Default is get #116
    • Replaced hide key on report config by hide-request and hide-response #116
    • Moved black check from CircleCI to github actions #136

    Fixed

    • Cases where custom var has upper case letters #99

    Removed

    • Request with no endpoints #116
    Source code(tar.gz)
    Source code(zip)
  • v0.0.18(Jan 2, 2020)

  • v0.0.17(Dec 18, 2019)

  • v0.0.16(Dec 18, 2019)

  • v0.0.15(Dec 14, 2019)

    • Update Documentation
    • Increase coverage
    • Fix join of urls to keep the last slash
    • Remove requirements files and put every dependency under setup.py
    • Remove dcvars key
    • Using dot notation to access responses inside api spec
    • Rename option report_path to output_path
    • Reporter option -r, --reporter [console|markdown|html]
    • CodeCov Setup
    • CircleCI Setup
    Source code(tar.gz)
    Source code(zip)
  • v0.0.14(Oct 9, 2019)

  • v0.0.12(Aug 14, 2019)

  • v0.0.11(Aug 9, 2019)

  • v0.0.10(Aug 9, 2019)

Owner
ScanAPI
Automated Integration Testing and Live Documentation for your API
ScanAPI
Collections of Beautiful Latex Snippets

HandyLatex Collections of Beautiful Latex Snippets Table 👉 Succinct table with bold separation line and gray text %################## Dependencies ##

Xintao 15 Apr 11, 2022
sphinx builder that outputs markdown files.

sphinx-markdown-builder sphinx builder that outputs markdown files Please ★ this repo if you found it useful ★ ★ ★ If you want frontmatter support ple

Clay Risser 144 Jan 06, 2023
Python-slp - Side Ledger Protocol With Python

Side Ledger Protocol Run python-slp node First install Mongo DB and run the mong

Solar 3 Mar 02, 2022
Loudchecker - Python script to check files for earrape

loudchecker python script to check files for earrape automatically installs depe

1 Jan 22, 2022
Crystal Smp plugin for show scoreboards

MCDR-CrystalScoreboards Crystal plugin for show scoreboards | Only 1.12 Usage !!s : Plugin help message !!s hide : Hide scoreboard !!s show : Show Sco

CristhianCd 3 Oct 12, 2021
Create docsets for Dash.app-compatible API browser.

doc2dash: Create Docsets for Dash.app and Clones doc2dash is an MIT-licensed extensible Documentation Set generator intended to be used with the Dash.

Hynek Schlawack 498 Dec 30, 2022
Minimal reproducible example for `mkdocstrings` Python handler issue

Minimal reproducible example for `mkdocstrings` Python handler issue

Hayden Richards 0 Feb 17, 2022
A simple XLSX/CSV reader - to dictionary converter

sheet2dict A simple XLSX/CSV reader - to dictionary converter Installing To install the package from pip, first run: python3 -m pip install --no-cache

Tomas Pytel 216 Nov 25, 2022
This is a tool to make easier brawl stars modding using csv manipulation

Brawler Maker : Modding Tool for Brawl Stars This is a tool to make easier brawl stars modding using csv manipulation if you want to support me, just

6 Nov 16, 2022
The blazing-fast Discord bot.

Wavy Wavy is an open-source multipurpose Discord bot built with pycord. Wavy is still in development, so use it at your own risk. Tools and services u

Wavy 7 Dec 27, 2022
Mozilla Campus Club CCEW is a student committee working to spread awareness on Open Source software.

Mozilla Campus Club CCEW is a student committee working to spread awareness on Open Source software. We organize webinars and workshops on different technical topics and making Open Source contributi

Mozilla-Campus-Club-Cummins 8 Jun 15, 2022
API Documentation for Python Projects

API Documentation for Python Projects. Example pdoc -o ./html pdoc generates this website: pdoc.dev/docs. Installation pip install pdoc pdoc is compat

mitmproxy 1.4k Jan 07, 2023
Python solutions to solve practical business problems.

Python Business Analytics Also instead of "watching" you can join the link-letter, it's already being sent out to about 90 people and you are free to

Derek Snow 357 Dec 26, 2022
This programm checks your knowlege about the capital of Japan

Introduction This programm checks your knowlege about the capital of Japan. Now, what does it actually do? After you run the programm you get asked wh

1 Dec 16, 2021
Python 3 wrapper for the Vultr API v2.0

Vultr Python Python wrapper for the Vultr API. https://www.vultr.com https://www.vultr.com/api This is currently a WIP and not complete, but has some

CSSNR 6 Apr 28, 2022
k3heap is a binary min heap implemented with reference

k3heap k3heap is a binary min heap implemented with reference k3heap is a component of pykit3 project: a python3 toolkit set. In this module RefHeap i

pykit3 1 Nov 13, 2021
Generate a single PDF file from MkDocs repository.

PDF Generate Plugin for MkDocs This plugin will generate a single PDF file from your MkDocs repository. This plugin is inspired by MkDocs PDF Export P

198 Jan 03, 2023
An MkDocs plugin that simplifies configuring page titles and their order

MkDocs Awesome Pages Plugin An MkDocs plugin that simplifies configuring page titles and their order The awesome-pages plugin allows you to customize

Lukas Geiter 282 Dec 28, 2022
Count the number of lines of code in a directory, minus the irrelevant stuff

countloc Simple library to count the lines of code in a directory (excluding stuff like node_modules) Simply just run: countloc node_modules args to

Anish 4 Feb 14, 2022
FxBuzzly - Buzzly.art links do not embed in Discord, this fixes them (rudimentarily)

fxBuzzly Buzzly.art links do not embed in Discord, this fixes them (rudimentaril

Dania Rifki 2 Oct 27, 2022