Fmt.
This commit is contained in:
parent
4c5d2aaed2
commit
03b37675b5
32 changed files with 193 additions and 169 deletions
projects
calf
datalog-shell
datalog
flowmetal
gandi/src/python/gandi
public-dns/src/python/arrdem/updater
ratchet
yamlschema
|
@ -2,7 +2,7 @@
|
|||
|
||||
from os import path
|
||||
|
||||
from setuptools import setup, find_namespace_packages
|
||||
from setuptools import find_namespace_packages, setup
|
||||
|
||||
|
||||
# Fetch the README contents
|
||||
|
|
|
@ -3,7 +3,7 @@ Some shared scaffolding for building terminal "REPL" drivers.
|
|||
"""
|
||||
|
||||
import curses
|
||||
from curses.textpad import Textbox, rectangle
|
||||
from curses.textpad import rectangle, Textbox
|
||||
|
||||
|
||||
def curse_repl(handle_buffer):
|
||||
|
|
|
@ -9,9 +9,9 @@ parsing, linting or other use.
|
|||
import io
|
||||
import re
|
||||
|
||||
from calf.token import CalfToken
|
||||
from calf.io.reader import PeekPosReader
|
||||
from calf.grammar import TOKENS
|
||||
from calf.io.reader import PeekPosReader
|
||||
from calf.token import CalfToken
|
||||
from calf.util import *
|
||||
|
||||
|
||||
|
|
|
@ -5,8 +5,8 @@ The Calf parser.
|
|||
from itertools import tee
|
||||
import logging
|
||||
|
||||
from calf.lexer import CalfLexer, lex_buffer, lex_file
|
||||
from calf.grammar import MATCHING, WHITESPACE_TYPES
|
||||
from calf.lexer import CalfLexer, lex_buffer, lex_file
|
||||
from calf.token import *
|
||||
|
||||
|
||||
|
|
|
@ -4,4 +4,5 @@ Fixtures for testing Calf.
|
|||
|
||||
import pytest
|
||||
|
||||
|
||||
parametrize = pytest.mark.parametrize
|
||||
|
|
|
@ -7,7 +7,6 @@ trip through the lexer.
|
|||
|
||||
import calf.lexer as cl
|
||||
from conftest import parametrize
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
|
|
|
@ -4,7 +4,6 @@ Tests of calf.parser
|
|||
|
||||
import calf.parser as cp
|
||||
from conftest import parametrize
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
"""
|
||||
"""
|
||||
|
||||
from conftest import parametrize
|
||||
|
||||
from calf.reader import read_buffer
|
||||
from conftest import parametrize
|
||||
|
||||
|
||||
@parametrize(
|
||||
|
|
|
@ -58,13 +58,13 @@ from datalog.debris import Timing
|
|||
from datalog.evaluator import select
|
||||
from datalog.reader import pr_str, read_command, read_dataset
|
||||
from datalog.types import (
|
||||
CachedDataset,
|
||||
Constant,
|
||||
Dataset,
|
||||
LVar,
|
||||
PartlyIndexedDataset,
|
||||
Rule,
|
||||
TableIndexedDataset,
|
||||
CachedDataset,
|
||||
Constant,
|
||||
Dataset,
|
||||
LVar,
|
||||
PartlyIndexedDataset,
|
||||
Rule,
|
||||
TableIndexedDataset
|
||||
)
|
||||
|
||||
from prompt_toolkit import print_formatted_text, prompt, PromptSession
|
||||
|
|
|
@ -7,14 +7,7 @@ from itertools import chain
|
|||
|
||||
from datalog.parser import parse
|
||||
from datalog.reader import pr_str, read
|
||||
from datalog.types import (
|
||||
CachedDataset,
|
||||
Constant,
|
||||
Dataset,
|
||||
LVar,
|
||||
Rule,
|
||||
TableIndexedDataset,
|
||||
)
|
||||
from datalog.types import CachedDataset, Constant, Dataset, LVar, Rule, TableIndexedDataset
|
||||
|
||||
|
||||
def match(tuple, expr, bindings=None):
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
from datalog.easy import read, select
|
||||
from datalog.types import (
|
||||
CachedDataset,
|
||||
Constant,
|
||||
Dataset,
|
||||
LVar,
|
||||
PartlyIndexedDataset,
|
||||
Rule,
|
||||
TableIndexedDataset,
|
||||
CachedDataset,
|
||||
Constant,
|
||||
Dataset,
|
||||
LVar,
|
||||
PartlyIndexedDataset,
|
||||
Rule,
|
||||
TableIndexedDataset
|
||||
)
|
||||
|
||||
import pytest
|
||||
|
|
|
@ -2,9 +2,10 @@
|
|||
Reader tests.
|
||||
"""
|
||||
|
||||
from datalog.reader import read
|
||||
|
||||
import pytest
|
||||
|
||||
from datalog.reader import read
|
||||
|
||||
EXS = [
|
||||
"%foo\n",
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
from setuptools import setup
|
||||
|
||||
|
||||
setup(
|
||||
name="arrdem.flowmetal",
|
||||
# Package metadata
|
||||
|
|
|
@ -2,9 +2,8 @@
|
|||
The Flowmetal server entry point.
|
||||
"""
|
||||
|
||||
from flowmetal import frontend, interpreter, scheduler, reaper
|
||||
|
||||
import click
|
||||
from flowmetal import frontend, interpreter, reaper, scheduler
|
||||
|
||||
|
||||
@click.group()
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
Quick and shitty Gandi REST API driver
|
||||
"""
|
||||
|
||||
import json
|
||||
from datetime import datetime
|
||||
import json
|
||||
|
||||
import requests
|
||||
|
||||
|
|
|
@ -2,21 +2,21 @@
|
|||
A quick and dirty public DNS script, super tightly coupled to my infrastructure.
|
||||
"""
|
||||
|
||||
import sys
|
||||
import os
|
||||
import argparse
|
||||
import re
|
||||
import os
|
||||
from pprint import pprint
|
||||
import re
|
||||
import sys
|
||||
|
||||
|
||||
for e in sys.path:
|
||||
print(e)
|
||||
|
||||
from gandi.client import GandiAPI
|
||||
|
||||
import jinja2
|
||||
import meraki
|
||||
import pkg_resources
|
||||
import yaml
|
||||
import meraki
|
||||
|
||||
|
||||
RECORD_LINE_PATTERN = re.compile(
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
from setuptools import setup
|
||||
|
||||
|
||||
setup(
|
||||
name="arrdem.ratchet",
|
||||
# Package metadata
|
||||
|
|
|
@ -8,7 +8,7 @@ from abc import ABC, abstractmethod
|
|||
class Message:
|
||||
"""Messages can be sent. That's it.
|
||||
|
||||
Messages have headers, which may
|
||||
Messages have headers, which may
|
||||
|
||||
Other things can filter the stream of inbound messages and do log processing, but that's the whole basis of the
|
||||
thing.
|
||||
|
@ -67,57 +67,51 @@ class Driver(ABC):
|
|||
"""Shared interface for Ratchet backend drivers."""
|
||||
|
||||
@abstractmethod
|
||||
def __init__(message_ttl=60000,
|
||||
message_space="_",
|
||||
message_author=""):
|
||||
def __init__(message_ttl=60000, message_space="_", message_author=""):
|
||||
"""Initialize the driver."""
|
||||
|
||||
@abstractmethod
|
||||
def create_message(self,
|
||||
message: str,
|
||||
ttl: int = None,
|
||||
space: str = None,
|
||||
author: str = None) -> Message:
|
||||
def create_message(
|
||||
self, message: str, ttl: int = None, space: str = None, author: str = None
|
||||
) -> Message:
|
||||
"""Create a single message."""
|
||||
|
||||
@abstractmethod
|
||||
def create_event(self,
|
||||
timeout: int,
|
||||
ttl: int = None,
|
||||
space: str = None,
|
||||
author: str = None):
|
||||
def create_event(
|
||||
self, timeout: int, ttl: int = None, space: str = None, author: str = None
|
||||
):
|
||||
"""Create a (pending) event."""
|
||||
|
||||
@abstractmethod
|
||||
def set_event(self,
|
||||
timeout: int,
|
||||
ttl: int = None,
|
||||
space: str = None,
|
||||
author: str = None):
|
||||
def set_event(
|
||||
self, timeout: int, ttl: int = None, space: str = None, author: str = None
|
||||
):
|
||||
"""Attempt to mark an event as set."""
|
||||
|
||||
@abstractmethod
|
||||
def create_request(self,
|
||||
body: str,
|
||||
timeout: int,
|
||||
ttl: int = None,
|
||||
space: str = None,
|
||||
author: str = None):
|
||||
def create_request(
|
||||
self,
|
||||
body: str,
|
||||
timeout: int,
|
||||
ttl: int = None,
|
||||
space: str = None,
|
||||
author: str = None,
|
||||
):
|
||||
"""Create a (pending) request."""
|
||||
|
||||
@abstractmethod
|
||||
def deliver_request(self,
|
||||
request_id,
|
||||
response: str,
|
||||
ttl: int = None,
|
||||
space: str = None,
|
||||
author: str = None):
|
||||
def deliver_request(
|
||||
self,
|
||||
request_id,
|
||||
response: str,
|
||||
ttl: int = None,
|
||||
space: str = None,
|
||||
author: str = None,
|
||||
):
|
||||
"""Deliver a response to a (pending) request."""
|
||||
|
||||
@abstractmethod
|
||||
def revoke_request(self,
|
||||
request_id,
|
||||
ttl: int = None,
|
||||
space: str = None,
|
||||
author: str = None):
|
||||
def revoke_request(
|
||||
self, request_id, ttl: int = None, space: str = None, author: str = None
|
||||
):
|
||||
"""Revoke a (pending) request."""
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
An implementation of the ratchet model against SQLite.
|
||||
"""
|
||||
|
||||
import os
|
||||
import sqlite3 as sql
|
||||
from contextlib import closing
|
||||
import os
|
||||
import socket
|
||||
import sqlite3 as sql
|
||||
|
||||
from ratchet import Message, Event, Request
|
||||
from ratchet import Event, Message, Request
|
||||
|
||||
|
||||
SCHEMA_SCRIPT = """
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
from setuptools import setup
|
||||
|
||||
|
||||
setup(
|
||||
name="arrdem.yamlschema",
|
||||
# Package metadata
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
JSONSchema linting for YAML documents.
|
||||
"""
|
||||
|
||||
import logging
|
||||
import typing as t
|
||||
from enum import Enum
|
||||
from io import StringIO
|
||||
import logging
|
||||
import re
|
||||
import typing as t
|
||||
|
||||
import yaml
|
||||
from yaml.nodes import MappingNode, Node, ScalarNode, SequenceNode
|
||||
|
@ -58,9 +58,13 @@ class YamlLinter(object):
|
|||
schema = self._schema
|
||||
for e in path:
|
||||
if not e:
|
||||
raise ValueError(f"Unable to dereference {ref}; contains empty segment!")
|
||||
raise ValueError(
|
||||
f"Unable to dereference {ref}; contains empty segment!"
|
||||
)
|
||||
if not (schema := schema.get(e)):
|
||||
raise ValueError(f"Unable to dereference {ref}; references missing sub-document!")
|
||||
raise ValueError(
|
||||
f"Unable to dereference {ref}; references missing sub-document!"
|
||||
)
|
||||
|
||||
return schema
|
||||
|
||||
|
@ -175,7 +179,10 @@ class YamlLinter(object):
|
|||
|
||||
else:
|
||||
yield LintRecord(
|
||||
LintLevel.MISSMATCH, node, schema, f"Expected an integer, got a {node.tag}"
|
||||
LintLevel.MISSMATCH,
|
||||
node,
|
||||
schema,
|
||||
f"Expected an integer, got a {node.tag}",
|
||||
)
|
||||
|
||||
def lint_number(self, schema, node: Node) -> t.Iterable[LintRecord]:
|
||||
|
@ -185,7 +192,10 @@ class YamlLinter(object):
|
|||
|
||||
else:
|
||||
yield LintRecord(
|
||||
LintLevel.MISSMATCH, node, schema, f"Expected an integer, got a {node.tag}"
|
||||
LintLevel.MISSMATCH,
|
||||
node,
|
||||
schema,
|
||||
f"Expected an integer, got a {node.tag}",
|
||||
)
|
||||
|
||||
def _lint_num_range(self, schema, node: Node, value) -> t.Iterable[LintRecord]:
|
||||
|
|
|
@ -2,9 +2,8 @@
|
|||
Tests covering the YAML linter.
|
||||
"""
|
||||
|
||||
from yamlschema import lint_buffer
|
||||
|
||||
import pytest
|
||||
from yamlschema import lint_buffer
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
|
@ -100,20 +99,31 @@ def test_lint_document_fails(msg, schema, obj):
|
|||
assert list(lint_buffer(schema, obj)), msg
|
||||
|
||||
|
||||
@pytest.mark.parametrize("msg, schema, obj", [
|
||||
("Basic usage of $ref",
|
||||
{"$ref": "#/definitions/Foo",
|
||||
"definitions": {
|
||||
"Foo": {"type": "string"},
|
||||
}},
|
||||
"---\nfoo"),
|
||||
("Use of nested references",
|
||||
{"$ref": "#/definitions/Foos",
|
||||
"definitions": {
|
||||
"Foos": {"type": "array", "items": {"$ref": "#/definitions/Foo"}},
|
||||
"Foo": {"type": "string"},
|
||||
}},
|
||||
"---\n- foo\n- bar\n- baz"),
|
||||
])
|
||||
@pytest.mark.parametrize(
|
||||
"msg, schema, obj",
|
||||
[
|
||||
(
|
||||
"Basic usage of $ref",
|
||||
{
|
||||
"$ref": "#/definitions/Foo",
|
||||
"definitions": {
|
||||
"Foo": {"type": "string"},
|
||||
},
|
||||
},
|
||||
"---\nfoo",
|
||||
),
|
||||
(
|
||||
"Use of nested references",
|
||||
{
|
||||
"$ref": "#/definitions/Foos",
|
||||
"definitions": {
|
||||
"Foos": {"type": "array", "items": {"$ref": "#/definitions/Foo"}},
|
||||
"Foo": {"type": "string"},
|
||||
},
|
||||
},
|
||||
"---\n- foo\n- bar\n- baz",
|
||||
),
|
||||
],
|
||||
)
|
||||
def test_ref_references(msg, schema, obj):
|
||||
assert not list(lint_buffer(schema, obj)), msg
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue