OpenAPI Spec validator

Overview

OpenAPI Spec validator

https://travis-ci.org/p1c2u/openapi-spec-validator.svg?branch=master https://img.shields.io/codecov/c/github/p1c2u/openapi-spec-validator/master.svg?style=flat

About

OpenAPI Spec Validator is a Python library that validates OpenAPI Specs against the OpenAPI 2.0 (aka Swagger) and OpenAPI 3.0 specification. The validator aims to check for full compliance with the Specification.

Installation

$ pip install openapi-spec-validator

Alternatively you can download the code and install from the repository:

$ pip install -e git+https://github.com/p1c2u/openapi-spec-validator.git#egg=openapi_spec_validator

Usage

Command Line Interface

Straight forward way:

$ openapi-spec-validator openapi.yaml

pipes way:

$ cat openapi.yaml | openapi-spec-validator -

docker way:

$ docker run -v path/to/openapi.yaml:/openapi.yaml --rm p1c2u/openapi-spec-validator /openapi.yaml

or more pythonic way:

$ python -m openapi_spec_validator openapi.yaml

Examples

By default, OpenAPI v3 syntax is expected. To validate an OpenAPI v3 spec:

from openapi_spec_validator import validate_spec
from openapi_spec_validator.readers import read_from_filename

spec_dict, spec_url = read_from_filename('openapi.yaml')

# If no exception is raised by validate_spec(), the spec is valid.
validate_spec(spec_dict)

validate_spec({})

Traceback (most recent call last):
    ...
OpenAPIValidationError: 'openapi' is a required property

In order to validate a Swagger / OpenAPI 2.0 spec file, import validate_v2_spec instead of validate_spec. You can also explicitly import validate_v3_spec if you want to disambiguate the expected version.

Add spec_url to validate spec with relative files:

validate_spec(spec_dict, spec_url='file:///path/to/spec/openapi.yaml')

You can also validate spec from url:

from openapi_spec_validator import validate_spec_url

# If no exception is raised by validate_spec_url(), the spec is valid.
validate_spec_url('http://example.com/openapi.json')

If you want to iterate through validation errors:

from openapi_spec_validator import openapi_v3_spec_validator

errors_iterator = openapi_v3_spec_validator.iter_errors(spec)

Related projects

  • openapi-core
    Python library that adds client-side and server-side support for the OpenAPI.
  • openapi-schema-validator
    Python library that validates schema against the OpenAPI Schema Specification v3.0.

License

Copyright (c) 2017-2021, Artur Maciag, All rights reserved. Apache v2

Comments
  • p1c2u/openapi-core#296: Implements OpenAPI 3.1 spec validator

    p1c2u/openapi-core#296: Implements OpenAPI 3.1 spec validator

    As mentioned in https://github.com/p1c2u/openapi-schema-validator/pull/18 this is the extension for OpenAPI 3.1.

    It is created as draft as it install jsonschema and openapi-schema-validator via GitHub in order to use the latest changes for Draft 2020-12.

    The test cases provided in https://github.com/OAI/OpenAPI-Specification/tree/main/tests/v3.1 are used for the implementation.

    Python 2.7 and 3.5 have been removed from the test matrix as they are end of life.

    I'm open for sugestions if any changes are required in the PR.

    opened by nezhar 14
  • PyYAML dependency does not allow any non-beta versions

    PyYAML dependency does not allow any non-beta versions

    In version 0.2.5 the PyYAML dependency was changed to PyYAML>=4.2b1. Since the latest non-beta version of PyYAML is 3.13, this means that dependency resolution fails if you do not allow beta packages.

    Was this intentional? Looking at https://github.com/yaml/pyyaml/issues/193, the release story for PyYAML is a bit of a mess, but my understanding is that 3.13 was released to add Python 3.7 compatibility and the "should the load function be safe by default" issue will be resolved in an upcoming version 5.

    kind/bug/confirmed 
    opened by leamingrad 12
  • On validation error: add cause and context.

    On validation error: add cause and context.

    I often miss the context provided by jsonschema library, so I'm trying to add it.

    Given the following erroneous schema (it misses a description):

    ---
    openapi: 3.0.0
    
    info:
      title: test
      description: test
      version: 0.0.1
    
    paths:
      "/":
        get:
          description: Get the API root
          responses:
            200:
              content:
                application/json:
                  schema:
                    type: string
    

    without this PR, openapi-spec-validator displays:

    {'content': {'application/json': {'schema': {'type': 'string'}}}} is not valid under any of the given schemas
    
    Failed validating 'oneOf' in schema['properties']['paths']['patternProperties']['^\\/']['patternProperties']['^(get|put|post|delete|options|head|patch|trace)$'
    ]['properties']['responses']['patternProperties']['^[1-5](?:\\d{2}|XX)$']:
        {'oneOf': [{'$ref': '#/definitions/Response'},
                   {'$ref': '#/definitions/Reference'}]}
    
    On instance['paths']['/']['get']['responses']['200']:
        {'content': {'application/json': {'schema': {'type': 'string'}}}}
    

    Basically telling « The path./.get.responses.200 is invalid: it should be a Response or a Reference. » without telling me about the missing description.

    With this PR it gives:

    {'content': {'application/json': {'schema': {'type': 'string'}}}} is not valid under any of the given schemas
    
    Failed validating 'oneOf' in schema['properties']['paths']['patternProperties']['^\\/']['patternProperties']['^(get|put|post|delete|options|head|patch|trace)$']['properties']['responses']['patternProperties']['^[1-5](?:\\d{2}|XX)$']:
        {'oneOf': [{'$ref': '#/definitions/Response'},
                   {'$ref': '#/definitions/Reference'}]}
    
    On instance['paths']['/']['get']['responses']['200']:
        {'content': {'application/json': {'schema': {'type': 'string'}}}}
    
    
    Due to those subschema errors:
    
    'description' is a required property
    
    Failed validating 'required' in schema[0]:
        {'additionalProperties': False,
         'patternProperties': {'^x-': {}},
         'properties': {'content': {'additionalProperties': {'$ref': '#/definitions/MediaType'},
                                    'type': 'object'},
                        'description': {'type': 'string'},
                        'headers': {'additionalProperties': {'oneOf': [{'$ref': '#/definitions/Header'},
                                                                       {'$ref': '#/definitions/Reference'}]},
                                    'type': 'object'},
                        'links': {'additionalProperties': {'oneOf': [{'$ref': '#/definitions/Link'},
                                                                     {'$ref': '#/definitions/Reference'}]},
                                  'type': 'object'}},
         'required': ['description'],
         'type': 'object'}
    
    On instance:
        {'content': {'application/json': {'schema': {'type': 'string'}}}}
    
    
    '$ref' is a required property
    
    Failed validating 'required' in schema[1]:
        {'patternProperties': {'^\\$ref$': {'format': 'uri-reference',
                                            'type': 'string'}},
         'required': ['$ref'],
         'type': 'object'}
    
    On instance:
        {'content': {'application/json': {'schema': {'type': 'string'}}}}
    

    This is probably a bit verbose, but I like a lot seeing 'description' is a required property.

    opened by JulienPalard 10
  • OpenAPI 3.0 spec not parsing required properly

    OpenAPI 3.0 spec not parsing required properly

    I have a spec with components that look like this:

    
    components:
      schemas:
        Credit:
          type: object
          properties:
            clientId:
              type: string
        CreditCreate:
          allOf:
            - $ref: '#/components/schemas/Credit'
            - required:
              - clientId
    
    

    I'm doing it like this because there are about 30 fields in credit, and 10 in required. All the fields in required are present in the linked object (or objects if I'm linking more than one). This is rejected by the code in validators.py inside SchemaValidator. iter_errors calls itself recursively on each piece of the allOf, but this doesn't let me reuse another object and simply add some fields as required. I worked around it for now by telling iter_errors to check that the properties field contains something before erroring, but I'm not sure that it is the correct fix.

    This behavior is supported in the swagger editor and in redoc, so I'm working off the assumption that it should be valid 3.0 syntax.

    opened by viralanomaly 9
  • jsonschema 3.0+ support

    jsonschema 3.0+ support

    Hi, the jsonschema has been updated to 3.0+, and maybe has some break changes:

    .eggs/openapi_spec_validator-0.2.4-py3.6.egg/openapi_spec_validator/__init__.py:7: in <module>
        from openapi_spec_validator.factories import JSONSpecValidatorFactory
    .eggs/openapi_spec_validator-0.2.4-py3.6.egg/openapi_spec_validator/factories.py:5: in <module>
        from openapi_spec_validator.generators import (
    .eggs/openapi_spec_validator-0.2.4-py3.6.egg/openapi_spec_validator/generators.py:12: in <module>
        class SpecValidatorsGeneratorFactory:
    .eggs/openapi_spec_validator-0.2.4-py3.6.egg/openapi_spec_validator/generators.py:19: in SpecValidatorsGeneratorFactory
        'properties': _validators.properties_draft4,
    E   AttributeError: module 'jsonschema._validators' has no attribute 'properties_draft4'
    
    kind/bug/confirmed 
    opened by strongbugman 8
  • Added CLI interface for ad-hoc validation

    Added CLI interface for ad-hoc validation

    Hi, i've added a CLI interface for validating local files. For that i've created an entry_point in setup.py pointing to a new file openapi_spec_validator/__main__.py. After you installed the package with pip you are able to run

    $ openapi_spec_validator path_to.yaml
    

    to run a validation. This could also be extended to run tests on URLs, not just local files.

    opened by venthur 7
  • Allow $ref to use `../`  for reference to parent directory file

    Allow $ref to use `../` for reference to parent directory file

    Dir structure:

    ├── fileA.yml
    ├── folderB
    │   └── fileB.yml
    

    From fileB.yml the validator does not permit usage of $ref: ../fileA.yml#/items/id . It works fine without the ../ in the beginning though.

    This would allow the openapi spec v3 files to be rendered on the browser using swagger-ui tool.

    opened by riddhi89 7
  • Can't install through pip

    Can't install through pip

    When I try to install the package I get the following output.

    Collecting openapi-spec-validator
      Could not find a version that satisfies the requirement openapi-spec-validator (from versions: )
    No matching distribution found for openapi-spec-validator
    
    opened by jkklapp 6
  • Valid response definition shows validation error

    Valid response definition shows validation error

    When using a valid OpenAPI spec (validated also by the swagger editor) an error is returned on the responses validation.

    $ python -m openapi_spec_validator ~/development/draft/api.yaml
    {'description': 'Changed with success.', 'content': {'application/json': {'schema': {'$ref': '#/components/responses/GenericSuccess', 'x-scope': ['file:///development/draft/api.yaml']}}}} is not valid under any of the given schemas
    
    Failed validating 'oneOf' in schema['properties']['paths']['patternProperties']['^/']['properties']['post']['properties']['responses']['patternProperties']['^([0-9X]{3})$']:
        {'oneOf': [{'$ref': '#/definitions/response'},
                   {'$ref': '#/definitions/reference'}]}
    
    On instance['paths']['/pets/{id}/comments']['post']['responses']['200']:
        {'content': {'application/json': {'schema': {'$ref': '#/components/responses/GenericSuccess',
                                                     'x-scope': ['file:///development/draft/api.yaml']}}},
         'description': 'Changed with success.'}
    

    The spec looks like:

    ...
        put:
          summary: Comments.
          operationId: api.change
          requestBody:
            description: Something.
            required: true
            content:
              applicaton/json:
                schema:
                  $ref: '#/components/schemas/CChange'
          responses:
            "200":
              description: Changed with success.
              content:
                application/json:
                  schema:
                    $ref: '#/components/responses/GenericSuccess'
    ...
    

    This should not throw an exception. Because the API spec is valid as of https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#responseObject Unless I'm missing something here.

    opened by rafaelcaricio 5
  • OpenAPI 3.0.0 schema fix: Parameter Object must contain 'schema' or 'content'

    OpenAPI 3.0.0 schema fix: Parameter Object must contain 'schema' or 'content'

    See the Fixed Fields section of the specs, towards the end:

    A parameter MUST contain either a schema property, or a content property, but not both.

    Adding the oneOf constraint requiring either content or schema fixes this issue.

    The same issue applies to all objects that refer to Parameter Objects as their basis, such as e.g. Header Objects. I will add to this branch until I've adjusted all of those, and notify when this is done.

    opened by jfinkhaeuser 5
  • Drop Python 2.7 and 3.5 support and bump dependency upper bounds

    Drop Python 2.7 and 3.5 support and bump dependency upper bounds

    Fixes #130 Fixes #135

    jsonschema released version 4.0.0 which dropped support for Python 2.7 and 3.5. openapi-spec-validator should do the same to support new versions of jsonschema. Both upstream dependencies and downstream dependents have already upgraded their jsonschema version constraints, which leads to conflicts with openapi-spec-validator.

    opened by RobbeSneyders 4
  • "Object of type datetime is not JSON serializable" error in version 0.5.1 but not in 0.4.0

    When using the command python3.9 -m openapi_spec_validator example.yml where the example.yml file contains the following:

    openapi: 3.0.0  
    info:  
      title: Example OpenAPI  
      version: 0.0.1  
    paths:  
      /mypath:  
        get:  
          parameters:  
            - name: myparam  
              in: query  
              schema:  
                format: date-time  
                type: string  
                example: 1997-07-16T19:20:30.45Z  
          responses:  
            '200':  
              description: Success  
    

    The result is the error: Object of type datetime is not JSON serializable

    If the example timestamp value in the YAML is wrapped in quotes, then the error does not occur and the result is: OK

    This was observed with Python 3.9.16 and openapi-spec-validator 0.5.1. When using openapi-spec-validator 0.4.0, the error does not occur.

    opened by firstStraw 0
  • Bump certifi from 2022.6.15 to 2022.12.7

    Bump certifi from 2022.6.15 to 2022.12.7

    Bumps certifi from 2022.6.15 to 2022.12.7.

    Commits

    Dependabot compatibility score

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


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

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

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

    dependencies 
    opened by dependabot[bot] 1
  • Properties validation weren't implemented

    Properties validation weren't implemented

    The following schema validation succeeded, even though the prop1 reference is broken.

    openapi: 3.0.0
    info:
      version: '1.0.0'
      title: 'Some Schema'
    paths: {}
    components:
      schemas:    
        SomeDataType:
          type: object
          properties:
            id:
              type: integer
            prop1:
              $ref: '<some-broken-uri>'
            prop2:
              type: string
    
    opened by xeronm 0
  • removing default_handlers breaks openapi-core

    removing default_handlers breaks openapi-core

    It seems like this commit https://github.com/p1c2u/openapi-spec-validator/commit/03d4937a85482bed16e0e92bf6795b8778458227 breaks https://github.com/p1c2u/openapi-core (v0.14.2). Our imports are failing now.

    opened by spasiu 2
  • No specific error information available.

    No specific error information available.

    First of all, I'm focussing on validating models (components/schemas) in an OpenAPI 3.0.0. yaml file.
    I'm testing with a slightly changed petstore.yaml (keep an eye on components/schemas/Pet/properties/id which has an extra attribute min instead of minimal):

    openapi: "3.0.0"
    info:
      version: 1.0.0
      title: Swagger Petstore
      license:
        name: MIT
    servers:
      - url: http://petstore.swagger.io/v1
    paths:
      /pets:
        get:
          summary: List all pets
          operationId: listPets
          tags:
            - pets
          parameters:
            - name: limit
              in: query
              description: How many items to return at one time (max 100)
              required: false
              schema:
                type: integer
                format: int32
          responses:
            200:
              description: An paged array of pets
              headers:
                x-next:
                  description: A link to the next page of responses
                  schema:
                    type: string
              content:
                application/json:    
                  schema:
                    $ref: "#/components/schemas/Pets"
            default:
              description: unexpected error
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/Error"
        post:
          summary: Create a pet
          operationId: createPets
          tags:
            - pets
          responses:
            '201':
              description: Null response
            default:
              description: unexpected error
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/Error"
      /pets/{petId}:
        get:
          summary: Info for a specific pet
          operationId: showPetById
          tags:
            - pets
          parameters:
            - name: petId
              in: path
              required: true
              description: The id of the pet to retrieve
              schema:
                type: string
          responses:
            '200':
              description: Expected response to a valid request
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/Pets"
            default:
              description: unexpected error
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/Error"
    components:
      schemas:
        Pet:
          required:
            - id
            - name
          properties:
            id:
              min: 1
              type: integer
              format: int64
            name:
              type: string
            tag:
              type: string
            $ref:
              type: string
        Pets:
          type: array
          items:
            $ref: "#/components/schemas/Pet"
        Error:
          required:
            - code
            - message
          properties:
            code:
              type: integer
              format: int32
            message:
              type: string
    

    Swagger Editor reports nicely on that little "typo" in pet's property id:

    grafik

    No matter what I try with openapi-spec-validator, it reqognizes an error like that from above but the error (OpenAPIValidationError or iterator) is totally unspecific.

    Validating the above yaml with:

      try:
          spec_dict, spec_url = read_from_filename('model.yaml')
          validate_v30_spec(spec_dict)
      except IOError as e:
          print(e)
      except OpenAPIValidationError as e:
          print(e)
    

    ...gives an output like:

    {'description': 'An paged array of pets', 'headers': {'x-next': {'description': 'A link to the next page of responses', 'schema': {'type': 'string'}}}, 'content': {'application/json': {'schema': {'$ref': '#/components/schemas/Pets', 'x-scope': ['']}}}} is not valid under any of the given schemas
    
    Failed validating 'oneOf' in schema['properties']['paths']['patternProperties']['^\\/']['patternProperties']['^(get|put|post|delete|options|head|patch|trace)$']['properties']['responses']['patternProperties']['^[1-5](?:\\d{2}|XX)$']:
        {'oneOf': [{'$ref': '#/definitions/Response'},
                   {'$ref': '#/definitions/Reference'}]}
    
    On instance['paths']['/pets']['get']['responses']['200']:
        {'content': {'application/json': {'schema': {'$ref': '#/components/schemas/Pets',
                                                     'x-scope': ['']}}},
         'description': 'An paged array of pets',
         'headers': {'x-next': {'description': 'A link to the next page of '
                                               'responses',
                                'schema': {'type': 'string'}}}}
    

    No hint on that specific error ("additionalProperty in pet.id" or something like that).

    Is openapi-spec-validator not what I'm looking for? Do I use this validator in a wrong way? Do I miss anything?

    opened by WillFreitag 0
Releases(0.5.1)
  • 0.5.1(Sep 5, 2022)

  • 0.5.0(Sep 2, 2022)

    Changelog

    • detect spec schema version #167
    • static types and Mypy static type check #168
    • tests mark network #169
    • schemas and validators lazy loading proxy #170
    • CLI detect spec version #171
    • Shortcuts refactor and validators explicit usage #172

    Backward incompatibilities

    • redundant shortcuts validate_v*_spec and validate_v*_spec_url removed. Use validate_spec and validate_spec_url with validator parameter instead.
    • default_handlers (and whole handlers package) removed. Use handlers from jsonschema_spec.handlers instead.
    Source code(tar.gz)
    Source code(zip)
  • 0.5.0a3(Aug 31, 2022)

  • 0.5.0a2(Jun 21, 2022)

  • 0.5.0a1(Jan 28, 2022)

  • 0.4.0(Jan 28, 2022)

    Changelog

    • Drop Python 2.7, 3.5 and 3.6 support #137
    • Add Python 3.10 support #137
    • Bump dependency upper bounds #137
    • Drop pyrsistent direct dependency #142
    Source code(tar.gz)
    Source code(zip)
  • 0.3.3(Jan 27, 2022)

  • 0.3.2(Jan 17, 2022)

  • 0.3.1(May 12, 2021)

  • 0.3.0(Feb 24, 2021)

  • 0.2.10(Feb 24, 2021)

    Changelog

    • Switched to using requests rather than direct use of urllib3 (#93)
    • Handlers timeout param fix (#107)
    • Detect duplicate operationId fix (#109)
    • Repair default and $ref issue (#91)
    Source code(tar.gz)
    Source code(zip)
  • 0.2.9(Jul 27, 2020)

  • 0.2.8(Jul 27, 2020)

  • 0.2.7(May 20, 2019)

  • 0.2.6(Feb 28, 2019)

Deduplicating archiver with compression and authenticated encryption.

More screencasts: installation, advanced usage What is BorgBackup? BorgBackup (short: Borg) is a deduplicating backup program. Optionally, it supports

BorgBackup 9k Jan 09, 2023
My solutions to the Advent of Code 2021 problems in Go and Python 🎄

🎄 Advent of Code 2021 🎄 Summary Advent of Code is an annual Advent calendar of programming puzzles. This year I am doing it in Go and Python. Runnin

Orfeas Antoniou 16 Jun 16, 2022
Pydantic model generator for easy conversion of JSON, OpenAPI, JSON Schema, and YAML data sources.

datamodel-code-generator This code generator creates pydantic model from an openapi file and others. Help See documentation for more details. Supporte

Koudai Aono 1.3k Dec 29, 2022
Repository for tutorials, examples and starter scripts for using the MTU HPC cluster

MTU-HPC-Starter Repository for tutorials, examples and starter scripts for using the MTU HPC cluster Connecting to the MTU HPC cluster Within the coll

1 Jan 31, 2022
A python package to import files from an adjacent folder

EasyImports About EasyImports is a python package that allows users to easily access and import files from sister folders: f.ex: - Project - Folde

1 Jun 22, 2022
learn python in 100 days, a simple step could be follow from beginner to master of every aspect of python programming and project also include side project which you can use as demo project for your personal portfolio

learn python in 100 days, a simple step could be follow from beginner to master of every aspect of python programming and project also include side project which you can use as demo project for your

BDFD 6 Nov 05, 2022
NetBox plugin for BGP related objects documentation

Netbox BGP Plugin Netbox plugin for BGP related objects documentation. Compatibility This plugin in compatible with NetBox 2.10 and later. Installatio

Nikolay Yuzefovich 133 Dec 27, 2022
Generating a report CSV and send it to an email - Python / Django Rest Framework

Generating a report in CSV format and sending it to a email How to start project. Create a folder in your machine Create a virtual environment python3

alexandre Lopes 1 Jan 17, 2022
Test utility for validating OpenAPI documentation

DRF OpenAPI Tester This is a test utility to validate DRF Test Responses against OpenAPI 2 and 3 schema. It has built-in support for: OpenAPI 2/3 yaml

snok 106 Jan 05, 2023
Python bindings to OpenSlide

OpenSlide Python OpenSlide Python is a Python interface to the OpenSlide library. OpenSlide is a C library that provides a simple interface for readin

OpenSlide 297 Dec 21, 2022
Legacy python processor for AsciiDoc

AsciiDoc.py This branch is tracking the alpha, in-progress 10.x release. For the stable 9.x code, please go to the 9.x branch! AsciiDoc is a text docu

AsciiDoc.py 178 Dec 25, 2022
🧙 A simple, typed and monad-based Result type for Python.

meiga 🧙 A simple, typed and monad-based Result type for Python. Table of Contents Installation 💻 Getting Started 📈 Example Features Result Function

Alice Biometrics 31 Jan 08, 2023
Clases y ejercicios del curso de python diactodo por la UNSAM

Programación en Python En el marco del proyecto de Inteligencia Artificial Interdisciplinaria, la Escuela de Ciencia y Tecnología de la UNSAM vuelve a

Maximiliano Villalva 3 Jan 06, 2022
Documentation for GitHub Copilot

NOTE: GitHub Copilot discussions have moved to the Copilot Feedback forum. GitHub Copilot Welcome to the GitHub Copilot user community! In this reposi

GitHub 21.3k Dec 28, 2022
Build AGNOS, the operating system for your comma three

agnos-builder This is the tool to build AGNOS, our Ubuntu based OS. AGNOS runs on the comma three devkit. NOTE: the edk2_tici and agnos-firmare submod

comma.ai 21 Dec 24, 2022
Zero configuration Airflow plugin that let you manage your DAG files.

simple-dag-editor SimpleDagEditor is a zero configuration plugin for Apache Airflow. It provides a file managing interface that points to your dag_fol

30 Jul 20, 2022
Version bêta d'un système pour suivre les prix des livres chez Books to Scrape,

Version bêta d'un système pour suivre les prix des livres chez Books to Scrape, un revendeur de livres en ligne. En pratique, dans cette version bêta, le programme n'effectuera pas une véritable surv

Mouhamed Dia 1 Jan 06, 2022
An MkDocs plugin to export content pages as PDF files

MkDocs PDF Export Plugin An MkDocs plugin to export content pages as PDF files The pdf-export plugin will export all markdown pages in your MkDocs rep

Terry Zhao 266 Dec 13, 2022
Some of the best ways and practices of doing code in Python!

Pythonicness ❤ This repository contains some of the best ways and practices of doing code in Python! Features Properly formatted codes (PEP 8) for bet

Samyak Jain 2 Jan 15, 2022
Contains the assignments from the course Building a Modern Computer from First Principles: From Nand to Tetris.

Contains the assignments from the course Building a Modern Computer from First Principles: From Nand to Tetris.

Matheus Rodrigues 1 Jan 20, 2022