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)

Owner
A
A
Automated generation of real Swagger/OpenAPI 2.0 schemas from Django REST Framework code.

drf-yasg - Yet another Swagger generator Generate real Swagger/OpenAPI 2.0 specifications from a Django Rest Framework API. Compatible with Django Res

Cristi Vîjdea 3k Dec 31, 2022
Sane and flexible OpenAPI 3 schema generation for Django REST framework.

drf-spectacular Sane and flexible OpenAPI 3.0 schema generation for Django REST framework. This project has 3 goals: Extract as much schema informatio

T. Franzel 1.4k Jan 8, 2023
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 5, 2023
A generic, spec-compliant, thorough implementation of the OAuth request-signing logic

OAuthLib - Python Framework for OAuth1 & OAuth2 *A generic, spec-compliant, thorough implementation of the OAuth request-signing logic for Python 3.5+

OAuthlib 2.5k Jan 2, 2023
A generic, spec-compliant, thorough implementation of the OAuth request-signing logic

OAuthLib - Python Framework for OAuth1 & OAuth2 *A generic, spec-compliant, thorough implementation of the OAuth request-signing logic for Python 3.5+

OAuthlib 2.5k Jan 1, 2023
A fast, extensible and spec-compliant Markdown parser in pure Python.

mistletoe mistletoe is a Markdown parser in pure Python, designed to be fast, spec-compliant and fully customizable. Apart from being the fastest Comm

Mi Yu 546 Jan 1, 2023
a fork of the OnionShare software better optimized for lower spec lightweight machines and ARM processors

OnionShare-Optimized A fork of the OnionShare software better optimized for lower spec lightweight machines and ARM processors such as Raspberry Pi or

ALTPORT 4 Aug 5, 2021
Code for ICCV2021 paper SPEC: Seeing People in the Wild with an Estimated Camera

SPEC: Seeing People in the Wild with an Estimated Camera [ICCV 2021] SPEC: Seeing People in the Wild with an Estimated Camera, Muhammed Kocabas, Chun-

Muhammed Kocabas 187 Dec 26, 2022
Prototype python implementation of the ome-ngff table spec

Prototype python implementation of the ome-ngff table spec

Kevin Yamauchi 8 Nov 20, 2022
Type-safe YAML parser and validator.

StrictYAML StrictYAML is a type-safe YAML parser that parses and validates a restricted subset of the YAML specification. Priorities: Beautiful API Re

Colm O'Connor 1.2k Jan 4, 2023
Advanced Number Validator Using telnyx api

Number Validator Python v1.0.0 Number Validator Using telnyx api DISCLAIMER This Tool is only for educational purposes You'll be responsible yourself

xBlackxCoder 3 Sep 24, 2022
An application to see if your Ethereum staking validator(s) are members of the current or next post-Altair sync committees.

eth_sync_committee.py Since the Altair upgrade, 512 validators are randomly chosen every 256 epochs (~27 hours) to form a sync committee. Validators i

null 4 Oct 27, 2022
A YAML validator for Programming Historian lessons.

phyaml A simple YAML validator for Programming Historian lessons. USAGE: python3 ph-lesson-yaml-validator.py lesson.md The script automatically detect

Riva Quiroga 1 Nov 7, 2021
Yahoo Mail Validator For Python

Validator Validator helps to know if the mail is valid or not Installation Install The libraries pip install requests bs4 colorama Usage Create a new

Mr Python 3 Mar 12, 2022
Get informed when your DeFI Earn CRO Validator is jailed or changes the commission rate.

CRO-DeFi-Warner Intro CRO-DeFi-Warner can be used to notify you when a validator changes the commission rate or gets jailed. It can also notify you wh

null 5 May 16, 2022
Address Validator (Bitcoin & Monero)

The Bitcoin address is an identifier of 26-35 alphanumeric characters, beginning with the number 1, 3 or bc1. 0, O, I, l are removed to avoid visual a

null 0 Mar 29, 2022
A modular dynamical-systems model of Ethereum's validator economics.

CADLabs Ethereum Economic Model A modular dynamical-systems model of Ethereum's validator economics, based on the open-source Python library radCAD, a

CADLabs 104 Jan 3, 2023
Disposable email validator for python

disposable-email-validator installation pip install disposable-email-validator

null 1 Jan 5, 2022
Yamale (ya·ma·lē) - A schema and validator for YAML.

Yamale (ya·ma·lē) ⚠️ Ensure that your schema definitions come from internal or trusted sources. Yamale does not protect against intentionally maliciou

23andMe 534 Dec 21, 2022
SqlAlchemy Flask-Restful Swagger Json:API OpenAPI

SAFRS: Python OpenAPI & JSON:API Framework Overview Installation JSON:API Interface Resource Objects Relationships Methods Custom Methods Class Method

Thomas Pollet 365 Jan 6, 2023