Recommend recipes based on what ingredients you have at home

Overview

🌱 MyChef

tests

📦 Overview

MyChef is an application that helps you decide what meal to make based on what you have at home. Simply enter in ingredients you have at home and get back tasty plant-based recipes from top recipe websites.

⚙️ Setup

FYI: an installation of docker and docker-compose is required to run the application.

Define .env configuration in root directory of project to develop locally:

POSTGRES_USER=mychef
POSTGRES_PASSWORD=mychef
POSTGRES_DB=mychef_db
POSTGRES_HOST=db
WEB_HOST=ui
WEB_PORT=8000
SEARCH_HOST=search
SEARCH_PORT=7700
API_PORT=8002
API_INGREDIENT_MODEL=v1
INTERNAL_API_URL=http://api:8000/api/v1

⌨️ Commands

# Download trained ingredient extraction model
make download

# Pull application images
make pull

# Start application containers
make run

# Scrape recipes
make scrape

When you refresh the UI, you should start seeing recipes populating the DB and the ingredients search bar should be showing which ingredients the application has extracted thus far. To stop the scraper just CTR-C in the terminal with the running service.

🧭 Project Structure

Api

  • Developed with FastAPI - fast (async support), simple and very intuitive.
  • Endpoints:
    • /sources: website source for recipes
    • /sources/ /recipes : list of recipes from given source id
    • /ingredients: unique ingredients extracted from recipes (extractor trained using spaCy)

UI

  • Developed with Nuxt.js an intuitive framework built on top of Vue that supports server side rendering.
  • Also uses Vuetify for component styling

Scraper

  • Developed using Scrapy a framework for extracting data from websites.
  • For each source, a spider needs to be defined that extracts the data and makes post request to api with recipe

Search

  • Leverages MeiliSearch to filter recipes based on ingredient input
Comments
  • Initial run is failing

    Initial run is failing

    Documentation needed for frontend build or another make command will be usefull

    cd frontend 
    yarn install
    nuxt generate
    

    Another things backend failing unless you build images locally since backend/api/start.sh needed to run

    it gives this error

     File "/opt/mychef/app/main.py", line 4, in <module>
        from app.api.v1.router import router
      File "/opt/mychef/app/api/v1/router.py", line 3, in <module>
        from .endpoints import ingredients, recipes, sources
      File "/opt/mychef/app/api/v1/endpoints/ingredients.py", line 12, in <module>
        from app.db.repositories.ingredients import IngredientsRepository
    ModuleNotFoundError: No module named 'app.db.repositories'
    [2022-03-23 19:13:18 +0000] [12] [INFO] Worker exiting (pid: 12)
    [2022-03-23 19:13:18 +0000] [1] [INFO] Shutting down: Master
    [2022-03-23 19:13:18 +0000] [1] [INFO] Reason: Worker failed to boot.```
    
    
    
    bug 
    opened by emingenc 4
  • chore(deps): bump scrapy from 2.4.1 to 2.5.1 in /scraper

    chore(deps): bump scrapy from 2.4.1 to 2.5.1 in /scraper

    Bumps scrapy from 2.4.1 to 2.5.1.

    Release notes

    Sourced from scrapy's releases.

    2.5.1

    Security bug fix:

    If you use HttpAuthMiddleware (i.e. the http_user and http_pass spider attributes) for HTTP authentication, any request exposes your credentials to the request target.

    To prevent unintended exposure of authentication credentials to unintended domains, you must now additionally set a new, additional spider attribute, http_auth_domain, and point it to the specific domain to which the authentication credentials must be sent.

    If the http_auth_domain spider attribute is not set, the domain of the first request will be considered the HTTP authentication target, and authentication credentials will only be sent in requests targeting that domain.

    If you need to send the same HTTP authentication credentials to multiple domains, you can use w3lib.http.basic_auth_header instead to set the value of the Authorization header of your requests.

    If you really want your spider to send the same HTTP authentication credentials to any domain, set the http_auth_domain spider attribute to None.

    Finally, if you are a user of scrapy-splash, know that this version of Scrapy breaks compatibility with scrapy-splash 0.7.2 and earlier. You will need to upgrade scrapy-splash to a greater version for it to continue to work.

    2.5.0

    • Official Python 3.9 support
    • Experimental HTTP/2 support
    • New get_retry_request() function to retry requests from spider callbacks
    • New headers_received signal that allows stopping downloads early
    • New Response.protocol attribute

    See the full changelog

    Changelog

    Sourced from scrapy's changelog.

    Scrapy 2.5.1 (2021-10-05)

    • Security bug fix:

      If you use :class:~scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware (i.e. the http_user and http_pass spider attributes) for HTTP authentication, any request exposes your credentials to the request target.

      To prevent unintended exposure of authentication credentials to unintended domains, you must now additionally set a new, additional spider attribute, http_auth_domain, and point it to the specific domain to which the authentication credentials must be sent.

      If the http_auth_domain spider attribute is not set, the domain of the first request will be considered the HTTP authentication target, and authentication credentials will only be sent in requests targeting that domain.

      If you need to send the same HTTP authentication credentials to multiple domains, you can use :func:w3lib.http.basic_auth_header instead to set the value of the Authorization header of your requests.

      If you really want your spider to send the same HTTP authentication credentials to any domain, set the http_auth_domain spider attribute to None.

      Finally, if you are a user of scrapy-splash_, know that this version of Scrapy breaks compatibility with scrapy-splash 0.7.2 and earlier. You will need to upgrade scrapy-splash to a greater version for it to continue to work.

    .. _scrapy-splash: https://github.com/scrapy-plugins/scrapy-splash

    .. _release-2.5.0:

    Scrapy 2.5.0 (2021-04-06)

    Highlights:

    • Official Python 3.9 support

    • Experimental :ref:HTTP/2 support <http2>

    • New :func:~scrapy.downloadermiddlewares.retry.get_retry_request function to retry requests from spider callbacks

    ... (truncated)

    Commits
    • 61130c8 Bump version: 2.5.0 → 2.5.1
    • 98d2173 Pin the libxml2 version in CI as a newer one breaks lxml (#5208)
    • 47fb908 [CI] fail-fast: false (#5200)
    • 6d7179b tests: freeze pylint==2.7.4
    • d06dcb8 tests: force queuelib < 1.6.0
    • d99b1a1 Cover 2.5.1 in the release notes
    • c9485a5 Small documentation fixes.
    • a172844 Add http_auth_domain to HttpAuthMiddleware.
    • 5fd75f8 docs: require sphinx-rtd-theme>=0.5.2 and the latest pip to prevent installin...
    • e63188c Bump version: 2.4.1 → 2.5.0
    • Additional commits viewable 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 python 
    opened by dependabot[bot] 4
  • chore(deps): bump lxml from 4.6.2 to 4.6.5 in /scraper

    chore(deps): bump lxml from 4.6.2 to 4.6.5 in /scraper

    Bumps lxml from 4.6.2 to 4.6.5.

    Changelog

    Sourced from lxml's changelog.

    4.6.5 (2021-12-12)

    Bugs fixed

    • A vulnerability (GHSL-2021-1038) in the HTML cleaner allowed sneaking script content through SVG images (CVE-2021-43818).

    • A vulnerability (GHSL-2021-1037) in the HTML cleaner allowed sneaking script content through CSS imports and other crafted constructs (CVE-2021-43818).

    4.6.4 (2021-11-01)

    Features added

    • GH#317: A new property system_url was added to DTD entities. Patch by Thirdegree.

    • GH#314: The STATIC_* variables in setup.py can now be passed via env vars. Patch by Isaac Jurado.

    4.6.3 (2021-03-21)

    Bugs fixed

    • A vulnerability (CVE-2021-28957) was discovered in the HTML Cleaner by Kevin Chung, which allowed JavaScript to pass through. The cleaner now removes the HTML5 formaction attribute.
    Commits
    • a9611ba Fix a test in Py2.
    • a3eacbc Prepare release of 4.6.5.
    • b7ea687 Update changelog.
    • 69a7473 Cleaner: cover some more cases where scripts could sneak through in specially...
    • 54d2985 Fix condition in test decorator.
    • 4b220b5 Use the non-depcrecated TextTestResult instead of _TextTestResult (GH-333)
    • d85c6de Exclude a test when using the macOS system libraries because it fails with li...
    • cd4bec9 Add macOS-M1 as wheel build platform.
    • fd0d471 Install automake and libtool in macOS build to be able to install the latest ...
    • f233023 Cleaner: Remove SVG image data URLs since they can embed script content.
    • Additional commits viewable 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 python 
    opened by dependabot[bot] 4
  • chore(deps): bump cryptography from 3.2.1 to 3.3.2 in /scraper

    chore(deps): bump cryptography from 3.2.1 to 3.3.2 in /scraper

    Bumps cryptography from 3.2.1 to 3.3.2.

    Changelog

    Sourced from cryptography's changelog.

    3.3.2 - 2021-02-07

    
    * **SECURITY ISSUE:** Fixed a bug where certain sequences of ``update()`` calls
      when symmetrically encrypting very large payloads (>2GB) could result in an
      integer overflow, leading to buffer overflows. *CVE-2020-36242* **Update:**
      This fix is a workaround for *CVE-2021-23840* in OpenSSL, fixed in OpenSSL
      1.1.1j.
    

    .. _v3-3-1:

    3.3.1 - 2020-12-09

    • Re-added a legacy symbol causing problems for older pyOpenSSL users.

    .. _v3-3:

    3.3 - 2020-12-08

    
    * **BACKWARDS INCOMPATIBLE:** Support for Python 3.5 has been removed due to
      low usage and maintenance burden.
    * **BACKWARDS INCOMPATIBLE:** The
      :class:`~cryptography.hazmat.primitives.ciphers.modes.GCM` and
      :class:`~cryptography.hazmat.primitives.ciphers.aead.AESGCM` now require
      64-bit to 1024-bit (8 byte to 128 byte) initialization vectors. This change
      is to conform with an upcoming OpenSSL release that will no longer support
      sizes outside this window.
    * **BACKWARDS INCOMPATIBLE:** When deserializing asymmetric keys we now
      raise ``ValueError`` rather than ``UnsupportedAlgorithm`` when an
      unsupported cipher is used. This change is to conform with an upcoming
      OpenSSL release that will no longer distinguish between error types.
    * **BACKWARDS INCOMPATIBLE:** We no longer allow loading of finite field
      Diffie-Hellman parameters of less than 512 bits in length. This change is to
      conform with an upcoming OpenSSL release that no longer supports smaller
      sizes. These keys were already wildly insecure and should not have been used
      in any application outside of testing.
    * Updated Windows, macOS, and ``manylinux`` wheels to be compiled with
      OpenSSL 1.1.1i.
    * Python 2 support is deprecated in ``cryptography``. This is the last release
      that will support Python 2.
    * Added the
      :meth:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey.recover_data_from_signature`
      function to
      :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`
      for recovering the signed data from an RSA signature.
    

    .. _v3-2-1:

    Commits
    • 82b6ce2 correct buffer overflows cause by integer overflow in openssl (#5747)
    • 1ff0d50 re-add Cryptography_HAS_TLSEXT_HOSTNAME and bump for 3.3.1 (#5625)
    • 7e8fff7 Prepare for 3.3 release (#5603)
    • b5278c9 Fixed DH tests for latest CentOS FIPS OpenSSL (#5604)
    • 6693d55 Add support for RSA signature recovery (#5573)
    • 8686d52 Document that PKCS1v1.5 is not constant time (#5600)
    • 1be144a bump cffi minimum version to help out pyopenssl (#5598)
    • 96f2d96 remove legacy debugging code from setup.py (#5597)
    • 2660f93 Document that Firefox doesn't support unencrypted pkcs12 (#5596)
    • a209669 Added tls bindings for new OpenSSL APIs (#5595)
    • Additional commits viewable 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 python 
    opened by dependabot[bot] 4
  • chore(deps): bump urllib3 from 1.26.2 to 1.26.5 in /scraper

    chore(deps): bump urllib3 from 1.26.2 to 1.26.5 in /scraper

    Bumps urllib3 from 1.26.2 to 1.26.5.

    Release notes

    Sourced from urllib3's releases.

    1.26.5

    :warning: IMPORTANT: urllib3 v2.0 will drop support for Python 2: Read more in the v2.0 Roadmap

    • Fixed deprecation warnings emitted in Python 3.10.
    • Updated vendored six library to 1.16.0.
    • Improved performance of URL parser when splitting the authority component.

    If you or your organization rely on urllib3 consider supporting us via GitHub Sponsors

    1.26.4

    :warning: IMPORTANT: urllib3 v2.0 will drop support for Python 2: Read more in the v2.0 Roadmap

    • Changed behavior of the default SSLContext when connecting to HTTPS proxy during HTTPS requests. The default SSLContext now sets check_hostname=True.

    If you or your organization rely on urllib3 consider supporting us via GitHub Sponsors

    1.26.3

    :warning: IMPORTANT: urllib3 v2.0 will drop support for Python 2: Read more in the v2.0 Roadmap

    • Fixed bytes and string comparison issue with headers (Pull #2141)

    • Changed ProxySchemeUnknown error message to be more actionable if the user supplies a proxy URL without a scheme (Pull #2107)

    If you or your organization rely on urllib3 consider supporting us via GitHub Sponsors

    Changelog

    Sourced from urllib3's changelog.

    1.26.5 (2021-05-26)

    • Fixed deprecation warnings emitted in Python 3.10.
    • Updated vendored six library to 1.16.0.
    • Improved performance of URL parser when splitting the authority component.

    1.26.4 (2021-03-15)

    • Changed behavior of the default SSLContext when connecting to HTTPS proxy during HTTPS requests. The default SSLContext now sets check_hostname=True.

    1.26.3 (2021-01-26)

    • Fixed bytes and string comparison issue with headers (Pull #2141)

    • Changed ProxySchemeUnknown error message to be more actionable if the user supplies a proxy URL without a scheme. (Pull #2107)

    Commits
    • d161647 Release 1.26.5
    • 2d4a3fe Improve performance of sub-authority splitting in URL
    • 2698537 Update vendored six to 1.16.0
    • 07bed79 Fix deprecation warnings for Python 3.10 ssl module
    • d725a9b Add Python 3.10 to GitHub Actions
    • 339ad34 Use pytest==6.2.4 on Python 3.10+
    • f271c9c Apply latest Black formatting
    • 1884878 [1.26] Properly proxy EOF on the SSLTransport test suite
    • a891304 Release 1.26.4
    • 8d65ea1 Merge pull request from GHSA-5phf-pp7p-vc2r
    • Additional commits viewable 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 python 
    opened by dependabot[bot] 4
  • chore(deps): bump py from 1.9.0 to 1.10.0 in /scraper

    chore(deps): bump py from 1.9.0 to 1.10.0 in /scraper

    Bumps py from 1.9.0 to 1.10.0.

    Changelog

    Sourced from py's changelog.

    1.10.0 (2020-12-12)

    • Fix a regular expression DoS vulnerability in the py.path.svnwc SVN blame functionality (CVE-2020-29651)
    • Update vendored apipkg: 1.4 => 1.5
    • Update vendored iniconfig: 1.0.0 => 1.1.1
    Commits
    • e5ff378 Update CHANGELOG for 1.10.0
    • 94cf44f Update vendored libs
    • 5e8ded5 testing: comment out an assert which fails on Python 3.9 for now
    • afdffcc Rename HOWTORELEASE.rst to RELEASING.rst
    • 2de53a6 Merge pull request #266 from nicoddemus/gh-actions
    • fa1b32e Merge pull request #264 from hugovk/patch-2
    • 887d6b8 Skip test_samefile_symlink on pypy3 on Windows
    • e94e670 Fix test_comments() in test_source
    • fef9a32 Adapt test
    • 4a694b0 Add GitHub Actions badge to README
    • Additional commits viewable 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 python 
    opened by dependabot[bot] 4
  • Scraping issue: When scraper interrupted and restarted again it cant continue since CloseSpider(

    Scraping issue: When scraper interrupted and restarted again it cant continue since CloseSpider("Recipe already exists")

    Screen Shot 2022-03-31 at 11 26 02 PM

    When I comment that line it worked fine and backend updated. before that i tried like couple times and every time scraper failed Recipe already exist. I guess in my first run scraper interrupted and when I restart make scrape it fails on same recipe and this does not allow to update further recipes with backend

    opened by emingenc 1
  • Check if ingredient exists before trying to add

    Check if ingredient exists before trying to add

    After switching from orm package to raw sqlalchemy async support, I ran into the issue of exceptions being raised when a unique constraint was broken.

    The prior functionality was to except the Unique constraint exception and move along with the next ingredient, but now it is breaking the add recipe endpoint:

    ERROR: duplicate key value violates unique constraint "ingredients_ingredient_key"

    A cleaner solution would be to first check if ingredient exists before trying to add it.

    bug 
    opened by logan-connolly 1
  • Tests in CI failing

    Tests in CI failing

    The pipeline fails with the following status:

    Error: Process completed with exit code 137

    A quick scan through the internet points to the tests being interrupted by a SIGKILL (9) being sent from the ubuntu based runner. This is likely caused by excessive memory usage, but need to investigate further why this is occurring and what has changed since 70172ecdd2f352c932f6bd0b145f90b302743205 where it was working fine.

    bug 
    opened by logan-connolly 1
  • chore(deps): bump websockets from 8.1 to 9.1 in /api

    chore(deps): bump websockets from 8.1 to 9.1 in /api

    Bumps websockets from 8.1 to 9.1.

    Changelog

    Sourced from websockets's changelog.

    9.1 ...

    May 27, 2021

    .. note::

    **Version 9.1 fixes a security issue introduced in version 8.0.**
    

    Version 8.0 was vulnerable to timing attacks on HTTP Basic Auth passwords.

    9.0.2 .....

    May 15, 2021

    • Restored compatibility of python -m websockets with Python < 3.9.

    • Restored compatibility with mypy.

    9.0.1 .....

    May 2, 2021

    • Fixed issues with the packaging of the 9.0 release.

    9.0 ...

    May 1, 2021

    .. note::

    **Version 9.0 moves or deprecates several APIs.**
    

    Aliases provide backwards compatibility for all previously public APIs.

    • :class:~datastructures.Headers and :exc:~datastructures.MultipleValuesError were moved from websockets.http to :mod:websockets.datastructures. If you're using them, you should adjust the import path.

    • The client, server, protocol, and auth modules were moved from the websockets package to websockets.legacy sub-package, as part of an upcoming refactoring. Despite the name, they're still fully supported. The refactoring should be a transparent upgrade for most uses when it's available. The legacy implementation will be preserved according to the backwards-compatibility policy_.

... (truncated)

Commits
  • d0f3288 Bump version number.
  • 547a26b Use constant-time comparison for passwords.
  • a14226a Bump version number.
  • 8900c13 Add mypy to dictionary.
  • 0713dbf Add test coverage.
  • b99c4fe Restore real imports for compatibility with mypy.
  • e44e085 Use relative imports everywhere, for consistency.
  • 70fadbf Restore compatibility with Python < 3.9.
  • 217ac2d Fix broken link.
  • fc176f4 Bump version number.
  • Additional commits viewable 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 python 
opened by dependabot[bot] 1
  • chore(deps): bump fastapi from 0.61.2 to 0.65.2 in /api

    chore(deps): bump fastapi from 0.61.2 to 0.65.2 in /api

    Bumps fastapi from 0.61.2 to 0.65.2.

    Release notes

    Sourced from fastapi's releases.

    0.65.2

    Security fixes

    This change fixes a CSRF security vulnerability when using cookies for authentication in path operations with JSON payloads sent by browsers.

    In versions lower than 0.65.2, FastAPI would try to read the request payload as JSON even if the content-type header sent was not set to application/json or a compatible JSON media type (e.g. application/geo+json).

    So, a request with a content type of text/plain containing JSON data would be accepted and the JSON data would be extracted.

    But requests with content type text/plain are exempt from CORS preflights, for being considered Simple requests. So, the browser would execute them right away including cookies, and the text content could be a JSON string that would be parsed and accepted by the FastAPI application.

    See CVE-2021-32677 for more details.

    Thanks to Dima Boger for the security report! 🙇🔒

    Internal

    0.65.1

    Security fixes

    0.65.0

    Breaking Changes - Upgrade

    • ⬆️ Upgrade Starlette to 0.14.2, including internal UJSONResponse migrated from Starlette. This includes several bug fixes and features from Starlette. PR #2335 by @​hanneskuettner.

    Translations

    Internal

    0.64.0

    Features

    ... (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 python 
    opened by dependabot[bot] 1
  • Dynamically add recipe pages

    Dynamically add recipe pages

    I do not want to redirect user directly to the source website, but take them to a unique recipe page with more information regarding the recipe.

    With nuxt you can do this relatively easily https://nuxtjs.org/guide/routing/

    enhancement 
    opened by logan-connolly 0
  • Owner
    Logan Connolly
    Hello there :wave:
    Logan Connolly
    A Prometheus Python client library for asyncio-based applications

    aioprometheus aioprometheus is a Prometheus Python client library for asyncio-based applications. It provides metrics collection and serving capabilit

    null 132 Dec 28, 2022
    FastAPI Admin Dashboard based on FastAPI and Tortoise ORM.

    FastAPI ADMIN 中文文档 Introduction FastAPI-Admin is a admin dashboard based on fastapi and tortoise-orm. FastAPI-Admin provide crud feature out-of-the-bo

    long2ice 1.6k Dec 31, 2022
    JSON-RPC server based on fastapi

    Description JSON-RPC server based on fastapi: https://fastapi.tiangolo.com Motivation Autogenerated OpenAPI and Swagger (thanks to fastapi) for JSON-R

    null 199 Dec 30, 2022
    The template for building scalable web APIs based on FastAPI, Tortoise ORM and other.

    FastAPI and Tortoise ORM. Powerful but simple template for web APIs w/ FastAPI (as web framework) and Tortoise-ORM (for working via database without h

    prostomarkeloff 95 Jan 8, 2023
    ReST based network device broker

    The Open API Platform for Network Devices netpalm makes it easy to push and pull state from your apps to your network by providing multiple southbound

    null 368 Dec 31, 2022
    a lightweight web framework based on fastapi

    start-fastapi Version 2021, based on FastAPI, an easy-to-use web app developed upon Starlette Framework Version 2020 中文文档 Requirements python 3.6+ (fo

    HiKari 71 Dec 30, 2022
    A Jupyter server based on FastAPI (Experimental)

    jupyverse is experimental and should not be used in place of jupyter-server, which is the official Jupyter server.

    Jupyter Server 122 Dec 27, 2022
    A simple python script where the user inputs the current ingredients they have in their kitchen into ingredients.txt

    A simple python script where the user inputs the current ingredients they have in their kitchen into ingredients.txt and then runs the main.py script, and it will output what recipes can be created based upon the ingredients supported.

    Jordan Leich 3 Nov 2, 2022
    arxiv-sanity, but very lite, simply providing the core value proposition of the ability to tag arxiv papers of interest and have the program recommend similar papers.

    arxiv-sanity, but very lite, simply providing the core value proposition of the ability to tag arxiv papers of interest and have the program recommend similar papers.

    Andrej 671 Dec 31, 2022
    [NeurIPS2021] Exploring Architectural Ingredients of Adversarially Robust Deep Neural Networks

    Exploring Architectural Ingredients of Adversarially Robust Deep Neural Networks Code for NeurIPS 2021 Paper "Exploring Architectural Ingredients of A

    Hanxun Huang 26 Dec 1, 2022
    An app that allows you to add recipes from the dashboard made using DJango, JQuery, JScript and HTMl.

    An app that allows you to add recipes from the dashboard. Then visitors filter based on different categories also each ingredient has a unique page with their related recipes.

    Pablo Sagredo 1 Jan 31, 2022
    This is a discord bot, which tells you food recipes.

    Discord Chef Bot You have a friend, familiy or other group / channel where the topic is the food? You cannot really decide what's for Saturday lunch?

    null 2 Apr 25, 2022
    Have you ever wondered how cool it would be to have your own A.I

    Have you ever wondered how cool it would be to have your own A.I. assistant Imagine how easier it would be to send emails without typing a single word, doing Wikipedia searches without opening web browsers, and performing many other daily tasks like playing music with the help of a single voice command.

    Harsh Gupta 1 Nov 9, 2021
    You can easily send campaigns, e-marketing have actually account using cash will thank you for using our tools, and you can support our Vodafone Cash +201090788026

    *** Welcome User Sorry I Mean Hello Brother ✓ Devolper and Design : Mokhtar Abdelkreem ========================================== You Can Follow Us O

    Mo Code 1 Nov 3, 2021
    Spam your friends and famly and when you do your famly will disown you and you will have no friends.

    SpamBot9000 Spam your friends and family and when you do your family will disown you and you will have no friends. Terms of Use Disclaimer: Please onl

    DJ15 0 Jun 9, 2022
    If you have stars in your Pipfile and you don't want them, this project is for you!

    unstar-pipfile If you have stars in your Pipfile, this project is for you! unstar-pipfile is a tool to scan Pipfile.lock and replace any stars in Pipf

    null 2 Jul 26, 2022
    FinGAT: A Financial Graph Attention Networkto Recommend Top-K Profitable Stocks

    FinGAT: A Financial Graph Attention Networkto Recommend Top-K Profitable Stocks This is our implementation for the paper: FinGAT: A Financial Graph At

    Yu-Che Tsai 64 Dec 13, 2022
    [CVPR'21] Learning to Recommend Frame for Interactive Video Object Segmentation in the Wild

    IVOS-W Paper Learning to Recommend Frame for Interactive Video Object Segmentation in the Wild Zhaoyun Yin, Jia Zheng, Weixin Luo, Shenhan Qian, Hanli

    SVIP Lab 38 Dec 12, 2022