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)

Tips for Writing a Research Paper using LaTeX

Tips for Writing a Research Paper using LaTeX

Guanying Chen 727 Dec 26, 2022
Easy OpenAPI specs and Swagger UI for your Flask API

Flasgger Easy Swagger UI for your Flask API Flasgger is a Flask extension to extract OpenAPI-Specification from all Flask views registered in your API

Flasgger 3.1k Jan 05, 2023
A Json Schema Generator

JSON Schema Generator Author : Eru Michael About A Json Schema Generator. This is a generic program that: Reads a JSON file similar to what's present

1 Nov 10, 2021
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
🏆 A ranked list of awesome python developer tools and libraries. Updated weekly.

Best-of Python Developer Tools 🏆 A ranked list of awesome python developer tools and libraries. Updated weekly. This curated list contains 250 awesom

Machine Learning Tooling 646 Jan 07, 2023
The project that powers MDN.

Kuma Kuma is the platform that powers MDN (developer.mozilla.org) Development Code: https://github.com/mdn/kuma Issues: P1 Bugs (to be fixed ASAP) P2

MDN Web Docs 1.9k Dec 26, 2022
An interview engine for businesses, interview those who are actually qualified and are worth your time!

easyInterview V0.8B An interview engine for businesses, interview those who are actually qualified and are worth your time! Quick Overview You/the com

Vatsal Shukla 1 Nov 19, 2021
The OpenAPI Specification Repository

The OpenAPI Specification The OpenAPI Specification is a community-driven open specification within the OpenAPI Initiative, a Linux Foundation Collabo

OpenAPI Initiative 25.5k Dec 29, 2022
A repository of links with advice related to grad school applications, research, phd etc

A repository of links with advice related to grad school applications, research, phd etc

Shaily Bhatt 946 Dec 30, 2022
A tool that allows for versioning sites built with mkdocs

mkdocs-versioning mkdocs-versioning is a plugin for mkdocs, a tool designed to create static websites usually for generating project documentation. mk

Zayd Patel 38 Feb 26, 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
API Documentation for Python Projects

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

mitmproxy 1.4k Jan 07, 2023
Some custom tweaks to the results produced by pytkdocs.

pytkdocs_tweaks Some custom tweaks for pytkdocs. For use as part of the documentation-generation-for-Python stack that comprises mkdocs, mkdocs-materi

Patrick Kidger 4 Nov 24, 2022
Show Rubygems description and annotate your code right from Sublime Text.

Gem Description for Sublime Text Show Rubygems description and annotate your code. Just mouse over your Gemfile's gem definitions to show the popup. s

Nando Vieira 2 Dec 19, 2022
Workbench to integrate pyoptools with freecad, that means basically optics ray tracing capabilities for FreeCAD.

freecad-pyoptools Workbench to integrate pyoptools with freecad, that means basically optics ray tracing capabilities for FreeCAD. Requirements It req

Combustión Ingenieros SAS 12 Nov 16, 2022
✨ Real-life Data Analysis and Model Training Workshop by Global AI Hub.

🎓 Data Analysis and Model Training Course by Global AI Hub Syllabus: Day 1 What is Data? Multimedia Structured and Unstructured Data Data Types Data

Global AI Hub 71 Oct 28, 2022
The tutorial is a collection of many other resources and my own notes

Why we need CTC? --- looking back on history 1.1. About CRNN 1.2. from Cross Entropy Loss to CTC Loss Details about CTC 2.1. intuition: forward algor

手写AI 7 Sep 19, 2022
PyPresent - create slide presentations from notes

PyPresent Create slide presentations from notes Add some formatting to text file

1 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
Minimal reproducible example for `mkdocstrings` Python handler issue

Minimal reproducible example for `mkdocstrings` Python handler issue

Hayden Richards 0 Feb 17, 2022