An unofficial package help developers to implement ZATCA (Fatoora) QR code easily which required for e-invoicing

Overview

ZATCA (Fatoora) QR-Code Implementation

An unofficial package help developers to implement ZATCA (Fatoora) QR code easily which required for e-invoicing

PyPI - Python Version PyPI License Code style: black test-fatoora Upload Python Package

Requirements

  • python >= 3.8
  • zbar-tools

Installation

You can install the package via pypi (pip):

$ pip3 install fatoora

or via github (git):

$ git clone https://github.com/TheAwiteb/fatoora/
$ cd fatoora
$ python3 setup.py install

Usage

Generate Base64

from fatoora import Fatoora

fatoora_obj = Fatoora(
    seller_name="Awiteb",
    tax_number=1234567891, # or "1234567891"
    invoice_date="2021-07-12T14:25:09+00:00", # ISO8601 @see https://en.wikipedia.org/wiki/ISO_8601
    total_amount=100, # or 100.0, 100.00, "100.0", "100.00"
    tax_amount=15, # or 15.0, 15.00, "15.0", "15.00"
)

print(fatoora_obj.base64)
# AQZBd2l0ZWICCjEyMzQ1Njc4OTEDFDIwMjEtMDctMTJUMTQ6MjU6MDlaBAYxMDAuMDAFBTE1LjAw

Render A QR Code Image

You can render the tags as QR code image easily

from fatoora import Fatoora

fatoora_obj = Fatoora(
    seller_name="Awiteb",
    tax_number=1234567891,
    invoice_date="2021-07-12T14:25:09+00:00", 
    total_amount=100,
    tax_amount=15,
)

fatoora_obj.qrcode("qr_code.png")

Generate hash (sha256)

from fatoora import Fatoora

fatoora_obj = Fatoora(
    seller_name="Awiteb",
    tax_number=1234567891, 
    invoice_date="2021-07-12T14:25:09+00:00", 
    total_amount=100, 
    tax_amount=15, 
)

print(fatoora_obj.hash)
# 7074ff5ad3b05534744037778ad1542e3c8057acd8308f50b95c7834f4955ed0

Read qr code

from fatoora import Fatoora

fatoora_obj = Fatoora(
    seller_name="Awiteb",
    tax_number=1234567891, 
    invoice_date="2021-07-12T14:25:09+00:00", 
    total_amount=100, 
    tax_amount=15, 
)

fatoora_obj.qrcode("qr_code.png")

print(Fatoora.read_qrcode("qr_code.png", dct=True))
# {'seller_name': 'Awiteb', 'tax_number': '1234567891', 'invoice_date': '2021-07-12T14:25:09+00:00', 'total_amount': '100.00', 'tax_amount': '15.00'}

print(Fatoora.read_qrcode("qr_code.png", dct=False))
# AQZBd2l0ZWICCjEyMzQ1Njc4OTEDFDIwMjEtMDctMTJUMTQ6MjU6MDlaBAYxMDAuMDAFBTE1LjAw

Extra Methods

fatoora_obj = Fatoora(
    seller_name="Awiteb",
    tax_number=1234567891, 
    invoice_date="2021-07-12T14:25:09+00:00", 
    total_amount=100, 
    tax_amount=15, 
)

print(fatoora_obj.invoice_date.year)
# 2021

print(fatoora_obj.invoice_date.isoformat())
# 2021-07-12T14:25:09+00:00

print(fatoora_obj.invoice_date.timestamp())
#1626099909.0

print(fatoora_obj.json())
# "{"seller_name": "Awiteb", "tax_number": "1234567891", "invoice_date": "2021-07-12T14:25:09+00:00", "total_amount": "100.00", "tax_amount": "15.00"}"

print(fatoora_obj.dict())
# {'seller_name': 'Awiteb', 'tax_number': '1234567891', 'invoice_date': '2021-07-12T14:25:09+00:00', 'total_amount': '100.00', 'tax_amount': '15.00'}

# Use class to get fatoora details by base64

print(Fatoora.base2dict(fatoora_obj.base64))
# {'seller_name': 'Awiteb', 'tax_number': '1234567891', 'invoice_date': '2021-07-12T14:25:09+00:00', 'total_amount': '100.00', 'tax_amount': '15.00'}

Security

If you discover any security related issues.

License

The MIT License (MIT). Please see License File for more information.

Comments
  • invoice date timestamp not work with VAT app

    invoice date timestamp not work with VAT app

    you have issue with invoice date timestamp invoice date must be datetime as string not timestamp float..

    datetime must be convert to string using this patch code:

    invoice_date.isoformat()[:-6] + "Z",


    Thank you for this package Best regards,

    bug 
    opened by EngFarisAlsmawi 4
  • Resolve

    Resolve "Refactor code and remove type annotate."

    What does this MR do and why?

    This PR is for refactoring and maintaining code:

    • [x] Refactor optimizeized imports.
    • [x] Removed unused variables.
    • [x] Removed type annotate.

    Screenshots or screen recordings

    N/A

    How to set up and validate locally

    1. Run the test for the project.
    opened by dhiaashalabi 2
  • [Bug]: `read_qrcode` panic when read a qr code contain a url

    [Bug]: `read_qrcode` panic when read a qr code contain a url

    Checks

    • [X] I added a descriptive title to this issue
    • [X] I have searched (google, github) for similar issues and couldn't find anything
    • [X] I have read and followed the docs and still think this is a bug

    Bug

    When trying to read a qr code contain a url and set the value of dct to True, the function will panic

    Code

    from fatoora import Fatoora
    
    
    obj = Fatoora(
        seller_name="Awiteb",
        tax_number=1234567891,
        invoice_date=1635872693.3186214,
        total_amount=100,
        tax_amount=15,
        qrcode_url="https://example.com",
    )
    
    obj.qrcode("tests.png")
    obj.read_qrcode("tests.png", dct=True)
    

    Error message

    Traceback (most recent call last):
      File "~/Desktop/projects/python-projects/fatoora/t.py", line 14, in <module>
        obj.read_qrcode("tests.png", dct=True)
      File "~/Desktop/projects/python-projects/fatoora/fatoora/fatoora.py", line 127, in read_qrcode
        return cls.base2dict(data)
      File "~/Desktop/projects/python-projects/fatoora/fatoora/fatoora.py", line 98, in base2dict
        decoded = base64.b64decode(base)
      File "/usr/lib/python3.10/base64.py", line 87, in b64decode
        return binascii.a2b_base64(s)
    binascii.Error: Invalid base64-encoded string: number of data characters (17) cannot be 1 more than a multiple of 4
    
    bug good first issue 
    opened by TheAwiteb 0
  • Bump numpy from 1.21.5 to 1.22.0

    Bump numpy from 1.21.5 to 1.22.0

    Bumps numpy from 1.21.5 to 1.22.0.

    Release notes

    Sourced from numpy's releases.

    v1.22.0

    NumPy 1.22.0 Release Notes

    NumPy 1.22.0 is a big release featuring the work of 153 contributors spread over 609 pull requests. There have been many improvements, highlights are:

    • Annotations of the main namespace are essentially complete. Upstream is a moving target, so there will likely be further improvements, but the major work is done. This is probably the most user visible enhancement in this release.
    • A preliminary version of the proposed Array-API is provided. This is a step in creating a standard collection of functions that can be used across application such as CuPy and JAX.
    • NumPy now has a DLPack backend. DLPack provides a common interchange format for array (tensor) data.
    • New methods for quantile, percentile, and related functions. The new methods provide a complete set of the methods commonly found in the literature.
    • A new configurable allocator for use by downstream projects.

    These are in addition to the ongoing work to provide SIMD support for commonly used functions, improvements to F2PY, and better documentation.

    The Python versions supported in this release are 3.8-3.10, Python 3.7 has been dropped. Note that 32 bit wheels are only provided for Python 3.8 and 3.9 on Windows, all other wheels are 64 bits on account of Ubuntu, Fedora, and other Linux distributions dropping 32 bit support. All 64 bit wheels are also linked with 64 bit integer OpenBLAS, which should fix the occasional problems encountered by folks using truly huge arrays.

    Expired deprecations

    Deprecated numeric style dtype strings have been removed

    Using the strings "Bytes0", "Datetime64", "Str0", "Uint32", and "Uint64" as a dtype will now raise a TypeError.

    (gh-19539)

    Expired deprecations for loads, ndfromtxt, and mafromtxt in npyio

    numpy.loads was deprecated in v1.15, with the recommendation that users use pickle.loads instead. ndfromtxt and mafromtxt were both deprecated in v1.17 - users should use numpy.genfromtxt instead with the appropriate value for the usemask parameter.

    (gh-19615)

    ... (truncated)

    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] 0
  • Bump pillow from 9.1.0 to 9.1.1

    Bump pillow from 9.1.0 to 9.1.1

    Bumps pillow from 9.1.0 to 9.1.1.

    Release notes

    Sourced from pillow's releases.

    9.1.1

    This release addresses several security problems.

    CVE-2022-30595: When reading a TGA file with RLE packets that cross scan lines, Pillow reads the information past the end of the first line without deducting that from the length of the remaining file data. This vulnerability was introduced in Pillow 9.1.0, and can cause a heap buffer overflow.

    Opening an image with a zero or negative height has been found to bypass a decompression bomb check. This will now raise a SyntaxError instead, in turn raising a PIL.UnidentifiedImageError.

    Changelog

    Sourced from pillow's changelog.

    9.1.1 (2022-05-17)

    • When reading past the end of a TGA scan line, reduce bytes left. CVE-2022-30595 [radarhere]

    • Do not open images with zero or negative height #6269 [radarhere]

    Commits
    • 0f44136 9.1.1 version bump
    • f66f5e1 pre-commit: update Black to fix Click
    • 0153b37 Skip test_realloc_overflow unless libtiff 4.0.4 or higher
    • 6fcd31b Added release notes for 9.1.1
    • c846cc8 When reading past the end of a scan line, reduce bytes left
    • 184b73e Do not open images with zero or negative height
    • See full diff in compare view

    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] 0
  • Make zbar optional, or replace it

    Make zbar optional, or replace it

    Bug

    zbar is an old library that is being removed from different Linux repositories. I suggest that instead of make it a mandatory, we make it optional (via a try/except) and the read_qrcode throws an exception if zbar is not installed (as I see, it's used only for decoding the QR image).

    Or (better), we replace it with something else, if exists.

    Thanks for working on this. Helped a lot implementing ZATCA's e-invoicing :)

    bug help wanted good first issue 
    opened by SafaAlfulaij 0
  • Bump pillow from 9.0.0 to 9.0.1

    Bump pillow from 9.0.0 to 9.0.1

    Bumps pillow from 9.0.0 to 9.0.1.

    Release notes

    Sourced from pillow's releases.

    9.0.1

    https://pillow.readthedocs.io/en/stable/releasenotes/9.0.1.html

    Changes

    • In show_file, use os.remove to remove temporary images. CVE-2022-24303 #6010 [@​radarhere, @​hugovk]
    • Restrict builtins within lambdas for ImageMath.eval. CVE-2022-22817 #6009 [radarhere]
    Changelog

    Sourced from pillow's changelog.

    9.0.1 (2022-02-03)

    • In show_file, use os.remove to remove temporary images. CVE-2022-24303 #6010 [radarhere, hugovk]

    • Restrict builtins within lambdas for ImageMath.eval. CVE-2022-22817 #6009 [radarhere]

    Commits
    • 6deac9e 9.0.1 version bump
    • c04d812 Update CHANGES.rst [ci skip]
    • 4fabec3 Added release notes for 9.0.1
    • 02affaa Added delay after opening image with xdg-open
    • ca0b585 Updated formatting
    • 427221e In show_file, use os.remove to remove temporary images
    • c930be0 Restrict builtins within lambdas for ImageMath.eval
    • 75b69dd Dont need to pin for GHA
    • cd938a7 Autolink CWE numbers with sphinx-issues
    • 2e9c461 Add CVE IDs
    • See full diff in compare view

    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] 0
  • Bump pillow from 8.4.0 to 9.0.0

    Bump pillow from 8.4.0 to 9.0.0

    Bumps pillow from 8.4.0 to 9.0.0.

    Release notes

    Sourced from pillow's releases.

    9.0.0

    https://pillow.readthedocs.io/en/stable/releasenotes/9.0.0.html

    Changes

    ... (truncated)

    Changelog

    Sourced from pillow's changelog.

    9.0.0 (2022-01-02)

    • Restrict builtins for ImageMath.eval(). CVE-2022-22817 #5923 [radarhere]

    • Ensure JpegImagePlugin stops at the end of a truncated file #5921 [radarhere]

    • Fixed ImagePath.Path array handling. CVE-2022-22815, CVE-2022-22816 #5920 [radarhere]

    • Remove consecutive duplicate tiles that only differ by their offset #5919 [radarhere]

    • Improved I;16 operations on big endian #5901 [radarhere]

    • Limit quantized palette to number of colors #5879 [radarhere]

    • Fixed palette index for zeroed color in FASTOCTREE quantize #5869 [radarhere]

    • When saving RGBA to GIF, make use of first transparent palette entry #5859 [radarhere]

    • Pass SAMPLEFORMAT to libtiff #5848 [radarhere]

    • Added rounding when converting P and PA #5824 [radarhere]

    • Improved putdata() documentation and data handling #5910 [radarhere]

    • Exclude carriage return in PDF regex to help prevent ReDoS #5912 [hugovk]

    • Fixed freeing pointer in ImageDraw.Outline.transform #5909 [radarhere]

    • Added ImageShow support for xdg-open #5897 [m-shinder, radarhere]

    • Support 16-bit grayscale ImageQt conversion #5856 [cmbruns, radarhere]

    • Convert subsequent GIF frames to RGB or RGBA #5857 [radarhere]

    ... (truncated)

    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] 0
  • Auto vat

    Auto vat

    • 𝙰𝚞𝚝𝚘𝚖𝚊𝚝𝚒𝚌𝚊𝚕𝚕𝚢 𝚍𝚎𝚍𝚞𝚌𝚝𝚒𝚗𝚐 𝚝𝚑𝚎 𝚝𝚊𝚡 𝚟𝚊𝚕𝚞𝚎 𝚏𝚛𝚘𝚖 𝚝𝚑𝚎 𝚝𝚘𝚝𝚊𝚕 𝚊𝚖𝚘𝚞𝚗𝚝 𝚒𝚏 𝚒𝚝𝚜 𝚟𝚊𝚕𝚞𝚎 𝚒𝚜 𝙽𝚘𝚗𝚎.
    • 𝚃𝚑𝚎 𝚙𝚘𝚜𝚜𝚒𝚋𝚒𝚕𝚒𝚝𝚢 𝚘𝚏 𝚌𝚑𝚊𝚗𝚐𝚒𝚗𝚐 𝚝𝚑𝚎 𝚝𝚊𝚡 𝚛𝚊𝚝𝚎 𝚟𝚒𝚊 𝚝𝚑𝚎 𝚟𝚊𝚛𝚒𝚊𝚋𝚕𝚎 𝚟𝚊𝚝_𝚛𝚊𝚝𝚎𝚜.

    𝙲𝚘𝚖𝚖𝚒𝚝𝚜

    • 7835589: 𝙲𝚑𝚊𝚗𝚐𝚎 𝚝𝚊𝚡 𝚊𝚖𝚘𝚞𝚗𝚝 𝚘𝚏 𝟷𝟷𝟻 𝚏𝚛𝚘𝚖 𝟷𝟻 𝚝𝚘 𝟷𝟽.𝟸𝟻.
    • 7ff429a: 𝙰𝚍𝚍 𝚏𝚊𝚝𝚘𝚘𝚛𝚊 𝚕𝚘𝚐𝚘, 𝚞𝚙𝚍𝚊𝚝𝚎 𝚎𝚡𝚊𝚖𝚙𝚕𝚎𝚜 𝚝𝚊𝚡_𝚊𝚖𝚘𝚞𝚗𝚝, 𝚞𝚙𝚍𝚊𝚝𝚎 𝚎𝚡𝚊𝚖𝚙𝚕𝚎𝚜 𝚛𝚎𝚜𝚞𝚕𝚝, 𝚊𝚍𝚍 𝚜𝚘𝚖𝚎 𝚗𝚘𝚝𝚎, 𝚊𝚗𝚍 𝙴𝚡𝚙𝚕𝚊𝚒𝚗 𝚝𝚑𝚎 𝚠𝚘𝚛𝚔 𝚘𝚏 𝚟𝚊𝚛𝚒𝚊𝚋𝚕𝚎𝚜
    • bcffb19: 𝙴𝚗𝚊𝚋𝚕𝚎𝚜 𝙰𝚞𝚝𝚘 𝚟𝚊𝚝

    𝙳𝚒𝚜𝚌𝚞𝚜𝚜𝚒𝚘𝚗𝚜

    𝙰𝚞𝚝𝚘 𝚟𝚊𝚝 𝚍𝚒𝚜𝚌𝚞𝚜𝚜𝚒𝚘𝚗 𝚑𝚎𝚛𝚎 #9

    opened by TheAwiteb 0
  • fix #6

    fix #6

    Changes

    fixed #6

    fatoora/fatoora.py

    total_amount, tax_amount

    Remove auto-rounding to two decimal places from total_amount and tax_amount, Its property has also been modified, it now returns float as opposed to str previously

    is_valid_iso8601_zulu_format

    Function that checks text if it is a date in ISO 8601 Zulu format or not

    invoice_date

    setter

    Its setter has been modified to receive date as timestamp or datetime object, or string ISO 8601 Zulu format

    property

    No modification has been made to its property, it is returning a datetime object yet

    tests/fatoora_test.py

    Only the invoice date in fatoora_details has been changed from timestamp to ISO 8601 Zulu to match the changes that have occurred and the type has also been changed to float the tests for total_amount and tax_amount to match the changes that have occurred

    discuss

    Any discussion regarding the new changes in this update will be made here

    opened by TheAwiteb 0
Releases(v3.0.3)
  • v3.0.3(Nov 3, 2022)

  • v3.0.2(Jun 23, 2022)

    What's Changed

    • Bump numpy from 1.21.5 to 1.22.0 by @dependabot in https://github.com/TheAwiteb/fatoora/pull/19

    Full Changelog: https://github.com/TheAwiteb/fatoora/compare/v3.0.1...v3.0.2

    Source code(tar.gz)
    Source code(zip)
  • v3.0.1(Jun 2, 2022)

    What's Changed

    • Bump pillow from 9.1.0 to 9.1.1 by @dependabot in https://github.com/TheAwiteb/fatoora/pull/18

    Full Changelog: https://github.com/TheAwiteb/fatoora/compare/v3.0.0...v3.0.1

    Source code(tar.gz)
    Source code(zip)
  • v3.0.0(Apr 6, 2022)

    What's Changed

    • Fix #15
    • Replace zbar with opencv by @TheAwiteb in https://github.com/TheAwiteb/fatoora/pull/16

    Full Changelog: https://github.com/TheAwiteb/fatoora/compare/v2.1.3...v3.0.0

    Source code(tar.gz)
    Source code(zip)
  • v2.1.3(Mar 20, 2022)

  • v2.1.2(Mar 15, 2022)

    What's Changed

    • Bump pillow from 9.0.0 to 9.0.1 by @dependabot in https://github.com/TheAwiteb/fatoora/pull/14

    Full Changelog: https://github.com/TheAwiteb/fatoora/compare/v2.1.1...v2.1.2

    Source code(tar.gz)
    Source code(zip)
  • v2.1.1(Jan 23, 2022)

    PyPi-fatoora-2.1.1

    What's Changed

    • Bump pillow from 8.4.0 to 9.0.0 by @dependabot in https://github.com/TheAwiteb/fatoora/pull/13

    New Contributors

    • @dependabot made their first contribution in https://github.com/TheAwiteb/fatoora/pull/13

    Full Changelog: https://github.com/TheAwiteb/fatoora/compare/v2.1.0...v2.1.1

    Source code(tar.gz)
    Source code(zip)
  • v2.1.0(Jan 22, 2022)

    • 𝙰𝚞𝚝𝚘𝚖𝚊𝚝𝚒𝚌𝚊𝚕𝚕𝚢 𝚍𝚎𝚍𝚞𝚌𝚝𝚒𝚗𝚐 𝚝𝚑𝚎 𝚝𝚊𝚡 𝚟𝚊𝚕𝚞𝚎 𝚏𝚛𝚘𝚖 𝚝𝚑𝚎 𝚝𝚘𝚝𝚊𝚕 𝚊𝚖𝚘𝚞𝚗𝚝 𝚒𝚏 𝚒𝚝𝚜 𝚟𝚊𝚕𝚞𝚎 𝚒𝚜 𝙽𝚘𝚗𝚎.
    • 𝚃𝚑𝚎 𝚙𝚘𝚜𝚜𝚒𝚋𝚒𝚕𝚒𝚝𝚢 𝚘𝚏 𝚌𝚑𝚊𝚗𝚐𝚒𝚗𝚐 𝚝𝚑𝚎 𝚝𝚊𝚡 𝚛𝚊𝚝𝚎 𝚟𝚒𝚊 𝚝𝚑𝚎 𝚟𝚊𝚛𝚒𝚊𝚋𝚕𝚎 𝚟𝚊𝚝_𝚛𝚊𝚝𝚎𝚜.

    𝙲𝚘𝚖𝚖𝚒𝚝𝚜

    • 7835589: 𝙲𝚑𝚊𝚗𝚐𝚎 𝚝𝚊𝚡 𝚊𝚖𝚘𝚞𝚗𝚝 𝚘𝚏 𝟷𝟷𝟻 𝚏𝚛𝚘𝚖 𝟷𝟻 𝚝𝚘 𝟷𝟽.𝟸𝟻.
    • 7ff429a: 𝙰𝚍𝚍 𝚏𝚊𝚝𝚘𝚘𝚛𝚊 𝚕𝚘𝚐𝚘, 𝚞𝚙𝚍𝚊𝚝𝚎 𝚎𝚡𝚊𝚖𝚙𝚕𝚎𝚜 𝚝𝚊𝚡_𝚊𝚖𝚘𝚞𝚗𝚝, 𝚞𝚙𝚍𝚊𝚝𝚎 𝚎𝚡𝚊𝚖𝚙𝚕𝚎𝚜 𝚛𝚎𝚜𝚞𝚕𝚝, 𝚊𝚍𝚍 𝚜𝚘𝚖𝚎 𝚗𝚘𝚝𝚎, 𝚊𝚗𝚍 𝙴𝚡𝚙𝚕𝚊𝚒𝚗 𝚝𝚑𝚎 𝚠𝚘𝚛𝚔 𝚘𝚏 𝚟𝚊𝚛𝚒𝚊𝚋𝚕𝚎𝚜
    • bcffb19: 𝙴𝚗𝚊𝚋𝚕𝚎𝚜 𝙰𝚞𝚝𝚘 𝚟𝚊𝚝

    𝙳𝚒𝚜𝚌𝚞𝚜𝚜𝚒𝚘𝚗𝚜

    𝙰𝚞𝚝𝚘 𝚟𝚊𝚝 𝚍𝚒𝚜𝚌𝚞𝚜𝚜𝚒𝚘𝚗 𝚑𝚎𝚛𝚎 #9

    𝙿𝚢𝙿𝚒

    𝙿𝚢𝙿𝚒-𝚏𝚊𝚝𝚘𝚘𝚛𝚊-𝟸.𝟷.𝟶

    What's Changed

    • Update README.md by @EngFarisAlsmawi in https://github.com/TheAwiteb/fatoora/pull/11
    • Auto vat by @TheAwiteb in https://github.com/TheAwiteb/fatoora/pull/12

    New Contributors

    • @EngFarisAlsmawi made their first contribution in https://github.com/TheAwiteb/fatoora/pull/11

    Full Changelog: https://github.com/TheAwiteb/fatoora/compare/v2.0.1...v2.1.0

    Source code(tar.gz)
    Source code(zip)
Owner
TheAwiteb
https://t.me/TheAwiteb
TheAwiteb
~1000 book pages + OpenCV + python = page regions identified as paragraphs, lines, images, captions, etc.

cosc428-structor I had an open-ended Computer Vision assignment to complete, and an out-of-copyright book that I wanted to turn into an ebook. Convent

Chad Oliver 45 Dec 06, 2022
(CVPR 2021) Back-tracing Representative Points for Voting-based 3D Object Detection in Point Clouds

BRNet Introduction This is a release of the code of our paper Back-tracing Representative Points for Voting-based 3D Object Detection in Point Clouds,

86 Oct 05, 2022
Deep LearningImage Captcha 2

滑动验证码深度学习识别 本项目使用深度学习 YOLOV3 模型来识别滑动验证码缺口,基于 https://github.com/eriklindernoren/PyTorch-YOLOv3 修改。 只需要几百张缺口标注图片即可训练出精度高的识别模型,识别效果样例: 克隆项目 运行命令: git cl

Python3WebSpider 117 Dec 28, 2022
Recognizing the text contents from a scanned visiting card

Recognizing the text contents from a scanned visiting card. The application which is used to recognize the text from scanned images,printeddocuments,r

Faizan Habib 1 Jan 28, 2022
Morphological edge detection or object's boundary detection using erosion and dialation in OpenCV python

Morphologycal-edge-detection-using-erosion-and-dialation the task is to detect object boundary using erosion or dialation . Here, use the kernel or st

Tamzid hasan 3 Nov 25, 2022
Converts an image into funny, smaller amongus characters

SussyImage Converts an image into funny, smaller amongus characters Demo Mona Lisa | Lona Misa (Made up of AmongUs characters) API I've also added an

Dhravya Shah 14 Aug 18, 2022
Validate and transform various OCR file formats (hOCR, ALTO, PAGE, FineReader)

ocr-fileformat Validate and transform between OCR file formats (hOCR, ALTO, PAGE, FineReader) Installation Docker System-wide Usage CLI GUI API Transf

Universitätsbibliothek Mannheim 152 Dec 20, 2022
Scale-aware Automatic Augmentation for Object Detection (CVPR 2021)

SA-AutoAug Scale-aware Automatic Augmentation for Object Detection Yukang Chen, Yanwei Li, Tao Kong, Lu Qi, Ruihang Chu, Lei Li, Jiaya Jia [Paper] [Bi

Jia Research Lab 182 Dec 29, 2022
A simple python program to record security cam footage by detecting a face and body of a person in the frame.

SecurityCam A simple python program to record security cam footage by detecting a face and body of a person in the frame. This code was created by me,

1 Nov 08, 2021
A fastai/PyTorch package for unpaired image-to-image translation.

Unpaired image-to-image translation A fastai/PyTorch package for unpaired image-to-image translation currently with CycleGAN implementation. This is a

Tanishq Abraham 120 Dec 02, 2022
Super Mario Game With Python

Super_Mario Hello all this is a simple python program which tries to use our body as a controller for the super mario game Here I have used media pipe

Adarsh Badagala 219 Nov 25, 2022
Hiiii this is the Spanish for Linux and win 10 and in the near future the english version of PortScan my new tool on which you can see what ports are Open only with the IP adress.

PortScanner-by-IIT PortScanner es una herramienta programada en Python3. Como su nombre indica esta herramienta escanea los primeros 150 puertos de re

5 Sep 19, 2022
An interactive interface for using OpenCV's GrabCut algorithm for image segmentation.

Interactive GrabCut An interactive interface for using OpenCV's GrabCut algorithm for image segmentation. Setup Install dependencies: pip install nump

Jason Y. Zhang 16 Oct 10, 2022
A bot that extract text from images using the Tesseract OCR.

Text from image (OCR) @ocr_text_bot A simple bot to extract text from images. Usage What do I need? A AWS key configured locally, see here. NodeJS. I

Weverton Marques 4 Aug 06, 2021
([email protected]) Boosting Co-teaching with Compression Regularization for Label Noise

Nested-Co-teaching ([email protected]) Pytorch implementation of paper "Boosting Co-tea

YINGYI CHEN 41 Jan 03, 2023
Python Computer Vision Aim Bot for Roblox's Phantom Forces

Python-Phantom-Forces-Aim-Bot Python Computer Vision Aim Bot for Roblox's Phanto

drag0ngam3s 2 Jul 11, 2022
This is a real life mario project using python and mediapipe

real-life-mario This is a real life mario project using python and mediapipe How to run to run this just run - realMario.py file requirements This req

Programminghut 42 Dec 22, 2022
Extract tables from scanned image PDFs using Optical Character Recognition.

ocr-table This project aims to extract tables from scanned image PDFs using Optical Character Recognition. Install Requirements Tesseract OCR sudo apt

Abhijeet Singh 209 Dec 06, 2022
Python-based tools for document analysis and OCR

ocropy OCRopus is a collection of document analysis programs, not a turn-key OCR system. In order to apply it to your documents, you may need to do so

OCRopus 3.2k Dec 31, 2022
Handwritten_Text_Recognition

Deep Learning framework for Line-level Handwritten Text Recognition Short presentation of our project Introduction Installation 2.a Install conda envi

24 Jul 15, 2022