Skip to content

Instantly share code, notes, and snippets.

@mjnbrn
Last active October 12, 2021 04:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mjnbrn/b2f81bb50aaaf5a2e42c891b66c12021 to your computer and use it in GitHub Desktop.
Save mjnbrn/b2f81bb50aaaf5a2e42c891b66c12021 to your computer and use it in GitHub Desktop.
A silly notetaking app
from sqlalchemy.ext.declarative import declarative_base
import argparse
from sqlalchemy import Column, Integer, String
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
engine = create_engine('sqlite:///notes.db')
Base = declarative_base()
class Notes(Base):
__tablename__ = 'notes'
id = Column(Integer, primary_key=True)
course = Column(String)
book = Column(String)
page = Column(String)
topic = Column(String)
desc = Column(String)
parser = argparse.ArgumentParser(prog="notes.py", description="So you want to take a note?",
usage="python notes.py 1 1 'logstash' 'a thing that stashs logs'")
parser.add_argument('--course', type=str,
default='CISSAPGIACSP', help='course code')
parser.add_argument('book', type=str, help='book number')
parser.add_argument('page', type=str, help='page number(s)')
parser.add_argument('topic', type=str, help='topic of note')
parser.add_argument('desc', type=str, help='note text')
args = parser.parse_args()
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()
try:
session.add(Notes(course=args.course, book=args.book,
page=args.page, topic=args.topic, desc=args.desc))
session.commit()
print("Your note about '{}' has been saved!".format(args.topic))
except Exception as e:
print("Aw shit, we failed...")
print(e)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment