Implementing a basic plugin architecture shouldn't be a complicated task. The solution described here is working but you still have to import every plugin (inheriting from the base class).
This is my solution:
$ tree
from collections import UserDict | |
class CaseInsensitiveDict(UserDict): | |
"""Dict that preserves key case, but will compare and set insensitively. | |
>>> 'test' in CaseInsensitiveDict({'Test':'value'}) | |
True | |
>>> CaseInsensitiveDict({'Test':'value'})['teSt'] | |
'value' | |
>>> d = CaseInsensitiveDict({'Test':'value'}) |
Skill/Experience Requirements: | |
1. Domain-Driven Design methodology | |
2. Data Mesh architecture | |
3. AWS advanced skills | |
4. SQL strong hands-on experience | |
5. Hands-on building, managing and optimizing data pipelines | |
6. Hands-on building CI/CD pipelines | |
7. Hands-on Python, Spark and Databricks | |
THE OPPORTUNITY |
Implementing a basic plugin architecture shouldn't be a complicated task. The solution described here is working but you still have to import every plugin (inheriting from the base class).
This is my solution:
$ tree
# how do we get credentials in here? Who knows.... | |
data "external" "stack" { | |
program = [ "xargs", "-0", | |
"aws", "cloudformation", "describe-stack-resource", "--output", "json", | |
"--query", "StackResourceDetail.{id:PhysicalResourceId}" ] | |
query = { | |
StackName: "StackName", | |
LogicalResourceId: "LogicalResourceName", | |
} | |
} |
from typing import List | |
def most_recent_first(versions: List[str]) -> List[str]: | |
"""Return the list of SemVers sorted by the newest first. | |
>>> versions = ['0.1.0','3.2.1','2.2.3','0.1.1','2.15.3'] | |
>>> most_recent_first(versions) | |
['3.2.1', '2.15.3', '2.2.3', '0.1.1', '0.1.0'] | |
""" | |
import doctest |
systemd: | |
units: | |
- name: etcd2.service | |
enable: true | |
etcd: | |
discovery: https://discovery.etcd.io/cfb401f0c192894e72c78cbd03a65442 | |
passwd: | |
users: | |
- name: core | |
ssh_authorized_keys: |
from collections.abc import MutableMapping, MutableSequence | |
from typing import Callable, Iterable, Union | |
MutableCollection = Union[MutableMapping, MutableSequence] | |
Visitor = Callable[[str], str] # we only support string scalars for now | |
def visit(value: str) -> str: | |
"""Visit a string scalar, and mutate it if needed before returning it.""" | |
if len(value) > 4: # example criteria |
#!/usr/bin/env python3 | |
# | |
# openssl asn1parse -noout -out private_key.der -genconf <(python jwks2asn1.py private_key.json) | |
# openssl rsa -in private_key.der -inform der > private_key.pem | |
# | |
# rfc7517.3 : urlsafe_b64decode | |
# rfc7517.A.1 : ints are big-indian | |
# | |
import base64 |
import contextlib | |
import os | |
import tempfile | |
half_lambda_memory = 10**6 * ( | |
int(os.getenv('AWS_LAMBDA_FUNCITON_MEMORY_SIZE', '0')) / 2) | |
@contextlib.contextmanager |
import secrets | |
import boto3 | |
import cfnresponse | |
ec2 = boto3.resource('ec2') | |
def create_ami(instance_id, ami_name, description): | |
instance = ec2.Instance(instance_id) |