Type Safety

Use dataclasses & dacite.from_dict

  pip install dacite
  
  from dacite import from_dict
from dataclasses import asdict

from dataclasses import dataclass

@dataclass
class MyObject:
    key1: int = None
    key2: int = None

data = {
    "key1": 1,
    "key2": 2,
}

# From dict
instance = from_dict(MyObject, data)
instance.key1
# To dict

instance_dict = asdict(instance)
instance['key1']
  

Flask

Quick Microservice

  import logging
from flask import Flask, request, jsonify

allowed_tld_domains = {
    'sandcatdev.com',
}

logging.basicConfig(level=logging.INFO)
app = Flask(__name__)

def check_domain(domain):
  sampled = '.'.join(domain.split('.')[-2:])
  return sampled in allowed_tld_domains

@app.route('/check_domain', methods=['GET'])
def main():
  domain = request.args.get('domain')
  app.logger.info(domain)
  if check_domain(domain):
    return jsonify({'message': f'Domain {domain} is valid'}), 200
  else:
    return jsonify({'message': f'Domain {domain} is not valid'}), 403

if __name__ == '__main__':
  app.run(host="0.0.0.0", port=80)
  

Create symbolic link at location /tmp/my_link_to_fstab with a value of ../my_fstab

  from pathlib import Path
Path("/tmp/my_link_to_fstab").symlink_to("../my_fstab")