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
Papers, Datasets, Algorithms, SOTA for STR. Long-time Maintaining

Scene Text Recognition Recommendations Everythin about Scene Text Recognition SOTA • Papers • Datasets • Code Contents 1. Papers 2. Datasets 2.1 Synth

Deep Learning and Vision Computing Lab, SCUT 197 Jan 05, 2023
TextBoxes: A Fast Text Detector with a Single Deep Neural Network https://github.com/MhLiao/TextBoxes 基于SSD改进的文本检测算法,textBoxes_note记录了之前整理的笔记。

TextBoxes: A Fast Text Detector with a Single Deep Neural Network Introduction This paper presents an end-to-end trainable fast scene text detector, n

zhangjing1 24 Apr 28, 2022
A general list of resources to image text localization and recognition 场景文本位置感知与识别的论文资源与实现合集 シーンテキストの位置認識と識別のための論文リソースの要約

Scene Text Localization & Recognition Resources Read this institute-wise: English, 简体中文. Read this year-wise: English, 简体中文. Tags: [STL] (Scene Text L

Karl Lok (Zhaokai Luo) 901 Dec 11, 2022
A machine learning software for extracting information from scholarly documents

GROBID GROBID documentation Visit the GROBID documentation for more detailed information. Summary GROBID (or Grobid, but not GroBid nor GroBiD) means

Patrice Lopez 1.9k Jan 08, 2023
Fine tuning keras-ocr python package with custom synthetic dataset from scratch

OCR-Pipeline-with-Keras The keras-ocr package generally consists of two parts: a Detector and a Recognizer: Detector is responsible for creating bound

Eugene 1 Jan 05, 2022
Face Detection with DLIB

Face Detection with DLIB In this project, we have detected our face with dlib and opencv libraries. Setup This Project Install DLIB & OpenCV You can i

Can 2 Jan 16, 2022
Deskew is a command line tool for deskewing scanned text documents. It uses Hough transform to detect "text lines" in the image. As an output, you get an image rotated so that the lines are horizontal.

Deskew by Marek Mauder https://galfar.vevb.net/deskew https://github.com/galfar/deskew v1.30 2019-06-07 Overview Deskew is a command line tool for des

Marek Mauder 127 Dec 03, 2022
Satoshi is a discord bot template in python using discord.py that allow you to track some live crypto prices with your own discord bot.

Satoshi ~ DiscordCryptoBot Satoshi is a simple python discord bot using discord.py that allow you to track your favorites cryptos prices with your own

Théo 2 Sep 15, 2022
Neural search engine for AI papers

Papers search Neural search engine for ML papers. Demo Usage is simple: input an abstract, get the matching papers. The following demo also showcases

Giancarlo Fissore 44 Dec 24, 2022
Code for the ACL2021 paper "Combining Static Word Embedding and Contextual Representations for Bilingual Lexicon Induction"

CSCBLI Code for our ACL Findings 2021 paper, "Combining Static Word Embedding and Contextual Representations for Bilingual Lexicon Induction". Require

Jinpeng Zhang 12 Oct 08, 2022
Tool which allow you to detect and translate text.

Text detection and recognition This repository contains tool which allow to detect region with text and translate it one by one. Description Two pretr

Damian Panek 176 Nov 28, 2022
Omdena-abuja-anpd - Automatic Number Plate Detection for the security of lives and properties using Computer Vision.

Omdena-abuja-anpd - Automatic Number Plate Detection for the security of lives and properties using Computer Vision.

Abdulazeez Jimoh 1 Jan 01, 2022
This is the official PyTorch implementation of the paper "TransFG: A Transformer Architecture for Fine-grained Recognition" (Ju He, Jie-Neng Chen, Shuai Liu, Adam Kortylewski, Cheng Yang, Yutong Bai, Changhu Wang, Alan Yuille).

TransFG: A Transformer Architecture for Fine-grained Recognition Official PyTorch code for the paper: TransFG: A Transformer Architecture for Fine-gra

Ju He 307 Jan 03, 2023
SCOUTER: Slot Attention-based Classifier for Explainable Image Recognition

SCOUTER: Slot Attention-based Classifier for Explainable Image Recognition PDF Abstract Explainable artificial intelligence has been gaining attention

87 Dec 26, 2022
Python rubik's cube solver

This program makes a 3D representation of a rubiks cube and solves it step by step.

Pablo QB 4 May 29, 2022
Code for the paper "DewarpNet: Single-Image Document Unwarping With Stacked 3D and 2D Regression Networks" (ICCV '19)

DewarpNet This repository contains the codes for DewarpNet training. Recent Updates [May, 2020] Added evaluation images and an important note about Ma

<a href=[email protected]"> 354 Jan 01, 2023
A little but useful tool to explore OCR data extracted with `pytesseract` and `opencv`

Screenshot OCR Tool Extracting data from screen time screenshots in iOS and Android. We are exploring 3 options: Simple OCR with no text position usin

Gabriele Marini 1 Dec 07, 2021
This is a project to detect gestures to zoom in or out, using the real-time distance between the index finger and the thumb. It's based on OpenCV and Mediapipe.

Pinch-zoom This is a python project based on real-time hand-gesture detection, to zoom in or out, using the distance between the index finger and the

Harshit Bhalla 6 Jul 11, 2022
Perspective recovery of text using transformed ellipses

unproject_text Perspective recovery of text using transformed ellipses. See full writeup at https://mzucker.github.io/2016/10/11/unprojecting-text-wit

Matt Zucker 111 Nov 13, 2022
CTPN + DenseNet + CTC based end-to-end Chinese OCR implemented using tensorflow and keras

简介 基于Tensorflow和Keras实现端到端的不定长中文字符检测和识别 文本检测:CTPN 文本识别:DenseNet + CTC 环境部署 sh setup.sh 注:CPU环境执行前需注释掉for gpu部分,并解开for cpu部分的注释 Demo 将测试图片放入test_images

Yang Chenguang 2.6k Dec 29, 2022