Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
173 commits
Select commit Hold shift + click to select a range
fddda36
added to readme
kojo-gene Apr 6, 2018
b23b6d9
Merge pull request #1 from Mildly-Sketchy/gene
kojo-gene Apr 6, 2018
ce22923
added names
kojo-gene Apr 6, 2018
7f0f43a
Merge pull request #2 from Mildly-Sketchy/gene
kojo-gene Apr 6, 2018
639c716
adding gitignore
katcosgrove Apr 15, 2018
2dd489a
some frontend complete
katcosgrove Apr 15, 2018
587b3dd
more scaffolding
katcosgrove Apr 15, 2018
773d61c
fixed footer on homepage
katcosgrove Apr 15, 2018
62b041f
fixed other footers
katcosgrove Apr 15, 2018
425ed7d
updating front page
katcosgrove Apr 16, 2018
1b82f57
front page copy updated, app name updated
katcosgrove Apr 16, 2018
8582c12
pyramid app online
katcosgrove Apr 16, 2018
2f41e0d
fixed background
katcosgrove Apr 16, 2018
ee1c0bf
Merge pull request #3 from Mildly-Sketchy/front-end-scaffold
Apr 16, 2018
58fc7fc
added ease-in-out to hover effects
katcosgrove Apr 16, 2018
cc51713
database tables and login/signup functional
katcosgrove Apr 16, 2018
06f5919
login and register fixed, forms fixed
katcosgrove Apr 16, 2018
2c7fc53
added a few basic tests
katcosgrove Apr 16, 2018
017b6d3
no changes
kojo-gene Apr 16, 2018
274cfc6
Merge branch 'development' of https://github.com/Mildly-Sketchy/Mildl…
kojo-gene Apr 16, 2018
e22d29b
Merge pull request #4 from Mildly-Sketchy/front-end-scaffold
Apr 16, 2018
118e30d
nothing new added
kojo-gene Apr 16, 2018
c405ceb
Merge branch 'development' of https://github.com/Mildly-Sketchy/Mildl…
kojo-gene Apr 16, 2018
693c195
un-nested structure to enable deploy
austincmatteson Apr 16, 2018
02b39ec
heroku setup files
austincmatteson Apr 16, 2018
4b85544
export
austincmatteson Apr 16, 2018
a3ea94d
Merge pull request #5 from Mildly-Sketchy/deploy
katcosgrove Apr 16, 2018
ae1b5ad
Merge pull request #6 from Mildly-Sketchy/development
katcosgrove Apr 16, 2018
5866849
travis
austincmatteson Apr 16, 2018
bdb9aba
Merge branch 'development' of https://github.com/Mildly-Sketchy/Mildl…
kojo-gene Apr 16, 2018
20b9e39
Merge pull request #7 from Mildly-Sketchy/travis
Apr 16, 2018
4373a91
put in env stuff
kojo-gene Apr 16, 2018
9e9a5fa
README started
Apr 16, 2018
3bd220a
just moved around view config
kojo-gene Apr 16, 2018
acb1599
Merge branch 'development' of https://github.com/Mildly-Sketchy/Mildl…
kojo-gene Apr 16, 2018
c1447f8
deleted unnecessary collaborations, fixed formating, changed setup to…
Apr 16, 2018
c5f3852
email from csv functional
austincmatteson Apr 16, 2018
41edde8
roll ini back
austincmatteson Apr 16, 2018
d0ae280
Merge pull request #8 from Mildly-Sketchy/mon-readme
katcosgrove Apr 16, 2018
c67836c
Merge pull request #9 from Mildly-Sketchy/travis
katcosgrove Apr 16, 2018
279a526
Merge pull request #10 from Mildly-Sketchy/email
katcosgrove Apr 16, 2018
c9554fb
lines too long / vscode gitignore
austincmatteson Apr 16, 2018
66c042f
scraper function in place
katcosgrove Apr 16, 2018
8572d47
scraper interacts with frontend
katcosgrove Apr 17, 2018
49d8583
Merge pull request #11 from Mildly-Sketchy/lint
Apr 17, 2018
ed189f2
Merge pull request #12 from Mildly-Sketchy/kat-scraper
Apr 17, 2018
7f9cf1a
few changes
kojo-gene Apr 17, 2018
1f09495
merged files
kojo-gene Apr 17, 2018
48ec9b2
merged conflict resolved
kojo-gene Apr 17, 2018
3a50503
fixed merge conflict
kojo-gene Apr 17, 2018
b10c89f
removed a few things and fixed merge conflicts
kojo-gene Apr 17, 2018
5b51d83
keyword storage works
katcosgrove Apr 17, 2018
21880e0
multi-word search terms now accepted
katcosgrove Apr 17, 2018
869cba0
saved keywords now conditionally display
katcosgrove Apr 17, 2018
1ded758
scraper now accepts stored list of keywords pulled from DB as argument
katcosgrove Apr 17, 2018
a185d72
Merge pull request #13 from Mildly-Sketchy/kat-keywords
Apr 17, 2018
64f10f9
testing at 69 perc
Apr 17, 2018
cd99f6c
keywords can now be deleted
katcosgrove Apr 17, 2018
7450cb5
code reorganized slightly, try/except catches in place
katcosgrove Apr 17, 2018
602bd6f
keywords display on edit profile page with ability to delete
katcosgrove Apr 17, 2018
8531db3
testing scraper works
Apr 17, 2018
2826688
Merge pull request #14 from Mildly-Sketchy/kat-keywords
Apr 17, 2018
e5db610
Merge branch 'development' into tues-testing
katcosgrove Apr 17, 2018
f0e42e6
Merge pull request #15 from Mildly-Sketchy/tues-testing
katcosgrove Apr 17, 2018
5a6d7b5
rendered to page
kojo-gene Apr 17, 2018
afeea1a
merged
kojo-gene Apr 17, 2018
207d9d8
plotting of association table
austincmatteson Apr 17, 2018
c35e7f8
keyword buttons styled
katcosgrove Apr 17, 2018
682bafc
bokeh uses numpy for something
austincmatteson Apr 17, 2018
65eba5a
erased imported parse and listed data
kojo-gene Apr 17, 2018
fe5769d
unused file
austincmatteson Apr 17, 2018
7f730d9
Merge pull request #17 from Mildly-Sketchy/gene
katcosgrove Apr 17, 2018
1bb9dbc
formatting for search page mostly complete
katcosgrove Apr 18, 2018
700c200
Merge branch 'development' of https://github.com/Mildly-Sketchy/Mildl…
katcosgrove Apr 18, 2018
6008af5
routing adjusted to accomodate results page, code cleanup, small UI c…
katcosgrove Apr 18, 2018
ccb0765
Merge pull request #19 from Mildly-Sketchy/kat-ui
Apr 18, 2018
c290919
sending to branch
kojo-gene Apr 18, 2018
4f102c6
Merge branch 'development' of https://github.com/Mildly-Sketchy/Mildl…
kojo-gene Apr 18, 2018
7df8af6
fixed styling with search results
kojo-gene Apr 18, 2018
f9b5c62
Merge branch 'development' into statistics
katcosgrove Apr 18, 2018
e0ca2c9
Merge pull request #18 from Mildly-Sketchy/statistics
katcosgrove Apr 18, 2018
7195249
disabling some tests to re-deploy
katcosgrove Apr 18, 2018
ec11ed6
Merge pull request #20 from Mildly-Sketchy/kat-ui
Apr 18, 2018
86ed024
Merge pull request #21 from Mildly-Sketchy/development
kojo-gene Apr 18, 2018
d03c156
Merge branch 'development' of https://github.com/Mildly-Sketchy/Mildl…
kojo-gene Apr 18, 2018
1983b38
bug fixes
katcosgrove Apr 18, 2018
8c05d3a
Merge pull request #22 from Mildly-Sketchy/kat-deploy
austincmatteson Apr 18, 2018
b972593
Merge pull request #23 from Mildly-Sketchy/development
kojo-gene Apr 18, 2018
aeeae75
Merge branch 'development' of https://github.com/Mildly-Sketchy/Mildl…
kojo-gene Apr 18, 2018
a1cc7a0
Merge branch 'master' of https://github.com/Mildly-Sketchy/Mildly-Ske…
kojo-gene Apr 18, 2018
96ce667
replaced hacky bug fix with actual bug fix
katcosgrove Apr 18, 2018
91b60cc
Merge pull request #25 from Mildly-Sketchy/kat-deploy
austincmatteson Apr 18, 2018
f98c4cd
no new changes
kojo-gene Apr 18, 2018
f4a237a
Merge branch 'development' of https://github.com/Mildly-Sketchy/Mildl…
kojo-gene Apr 18, 2018
aebb7b6
no new changes
kojo-gene Apr 18, 2018
baca44a
hacky fix to prevent integer search terms
katcosgrove Apr 18, 2018
7b2001a
results now available for download by the user as a CSV file
katcosgrove Apr 18, 2018
0e0dffd
new branch to have the bug fixes from dev branch
Apr 18, 2018
d718135
tests pass for search and profile and keywords
Apr 18, 2018
053ef91
dataframe now cleans itself of duplicate entries
katcosgrove Apr 18, 2018
1d7699d
view files modularized, footer menu updated
katcosgrove Apr 18, 2018
bd10b71
message now displays when username is already in use
katcosgrove Apr 18, 2018
e0f50a8
test broken due to new file fixed
katcosgrove Apr 18, 2018
faf6b12
added href to job link
kojo-gene Apr 18, 2018
dd95210
Merge pull request #26 from Mildly-Sketchy/kat-accounts
Apr 18, 2018
df62ed5
user can update email address or delete entire account
katcosgrove Apr 18, 2018
7dd0e7c
fixed styling for search results
kojo-gene Apr 18, 2018
0b07b41
Merge pull request #27 from Mildly-Sketchy/kat-accounts
kojo-gene Apr 18, 2018
39ec2b7
fixing files to use environment variable for database url
katcosgrove Apr 18, 2018
195cd74
Merge pull request #28 from Mildly-Sketchy/gene
katcosgrove Apr 18, 2018
0a4b24a
Merge pull request #29 from Mildly-Sketchy/kat-deploy
kojo-gene Apr 18, 2018
0e86453
merge fix
austincmatteson Apr 19, 2018
16b05dc
Merge pull request #32 from Mildly-Sketchy/minor-fixes
katcosgrove Apr 19, 2018
35d4287
test to set keywords with fake authenticated user works
Apr 19, 2018
b58d909
Merge branch 'development' into wed-fix
katcosgrove Apr 19, 2018
37983f7
Merge pull request #33 from Mildly-Sketchy/wed-fix
katcosgrove Apr 19, 2018
88a7b54
removing old files:
katcosgrove Apr 19, 2018
8e1325b
Merge pull request #34 from Mildly-Sketchy/kat-testing
austincmatteson Apr 19, 2018
e761903
reorg tests in to different files
Apr 19, 2018
c74cbd7
Merge pull request #35 from Mildly-Sketchy/wed-more-testing
katcosgrove Apr 19, 2018
f00f9ed
401 redirect for bad login caught, scraper now returns job summaries
katcosgrove Apr 19, 2018
bcbfb5b
Merge pull request #36 from Mildly-Sketchy/kat-testing
Apr 19, 2018
5e3dec8
testing, added exception to scraper
Apr 19, 2018
b8160b1
forbidden view and existing username tests added
Apr 19, 2018
6d1925c
small UI issues corrected, admin permissions for analytics page in place
katcosgrove Apr 19, 2018
49cbf5b
Merge pull request #37 from Mildly-Sketchy/kat-ui-cleanup
Apr 19, 2018
e181259
more tests
Apr 19, 2018
78fafc3
testing
Apr 19, 2018
993ea7c
Merge pull request #38 from Mildly-Sketchy/thurs-testing
katcosgrove Apr 19, 2018
819ea8c
a few more tests, all passing
Apr 19, 2018
1b1a79a
mass scraper notebook with CSV files added, some tests in place
katcosgrove Apr 19, 2018
f254151
pushing CSV files
katcosgrove Apr 19, 2018
6800e8d
tests
Apr 19, 2018
3613b24
Merge pull request #40 from Mildly-Sketchy/thu-coverage
katcosgrove Apr 19, 2018
a0ab8ec
merging from development
katcosgrove Apr 19, 2018
fdc20b1
nocover on things we can't test
katcosgrove Apr 19, 2018
d2219b5
Merge pull request #39 from Mildly-Sketchy/kat-mass-scrape
Apr 19, 2018
dde6661
readme update
Apr 20, 2018
9829356
readme
Apr 20, 2018
e6c0dfe
statistics baybay
austincmatteson Apr 20, 2018
9cc34cb
unrender
austincmatteson Apr 20, 2018
61e65ae
linter cleanup
austincmatteson Apr 20, 2018
f5ff7ec
Merge pull request #42 from Mildly-Sketchy/salary-data
Apr 20, 2018
cc7bd21
Merge pull request #41 from Mildly-Sketchy/thurs-doc
austincmatteson Apr 20, 2018
cfabc1d
about img and description
Apr 20, 2018
f11f024
pics and about
Apr 20, 2018
e1aceac
Merge pull request #43 from Mildly-Sketchy/thurs-doc
Apr 20, 2018
aa31f94
style size
Apr 20, 2018
be6e539
fix gene's pic
Apr 20, 2018
8c0ffe4
Merge branch 'development' into thurs-doc
Apr 20, 2018
8a63a30
Merge pull request #44 from Mildly-Sketchy/thurs-doc
Apr 20, 2018
27d90d2
style
Apr 20, 2018
1fee1fa
resized pics
Apr 20, 2018
55168f3
about page centered
Apr 20, 2018
218c0f2
Merge pull request #45 from Mildly-Sketchy/about
Apr 20, 2018
d00f4d8
replaced unicode quotes and dashes with ascii
katcosgrove Apr 20, 2018
bcf15ed
Merge pull request #46 from Mildly-Sketchy/kat-weird-bug
Apr 20, 2018
78ad011
changed route to get around UI issue
katcosgrove Apr 20, 2018
fd8af22
Merge pull request #47 from Mildly-Sketchy/kat-weird-bug
Apr 20, 2018
cab1ae1
added summary back to dataframe
katcosgrove Apr 20, 2018
320f28f
Merge pull request #48 from Mildly-Sketchy/kat-weird-bug
Apr 20, 2018
0bbab21
github and linkedin added to about page
Apr 20, 2018
d74e149
panic test for stat page written
katcosgrove Apr 20, 2018
b9bcfc5
Merge pull request #50 from Mildly-Sketchy/kat-weird-bug
kojo-gene Apr 20, 2018
98c8e37
fix
austincmatteson Apr 20, 2018
4a40caf
links to github and linkedin
Apr 20, 2018
95113f2
Merge pull request #51 from Mildly-Sketchy/legend
Apr 20, 2018
99d0255
readme
Apr 20, 2018
0e414ba
readme update
Apr 20, 2018
efa8483
Merge pull request #52 from Mildly-Sketchy/about
katcosgrove Apr 20, 2018
01577e8
adding full names and updating notebook
katcosgrove Apr 20, 2018
1e7db69
updating copy
katcosgrove Apr 20, 2018
d215d5c
bokeh positioning fixed
katcosgrove Apr 20, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .coveragerc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[run]
omit =
opportune/test*
opportune/__init__.py
opportune/models/__init__.py
opportune/models/meta.py
opportune/scripts/*
119 changes: 119 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@

# Created by https://www.gitignore.io/api/python

.DS_STORE
.vscode

Data.fs*
*.sublime-project
*.sublime-workspace
.*.sw?
.sw?

### Python ###
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*.pyc
*$py.class
*~

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg


# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
.pytest_cache/
nosetests.xml
coverage.xml
*.cover
.hypothesis/
tmp/

# Translations
*.mo
*.pot

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# pyenv
.python-version

# celery beat schedule file
celerybeat-schedule.*

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
env*/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/


# End of https://www.gitignore.io/api/python
24 changes: 24 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
language: python
python:
- "3.6"

services:
- postgresql

before_script:
- psql -c "create database opportune_test;" -U postgres

#set some environment variables
env:
- TEST_DATABASE_URL='postgres://127.0.0.1:5432/opportune_test'

# command to install dependencies
install:
- pip install -e .[testing]

# commands to run tests
script:
- pytest

notifications:
email: false
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"python.pythonPath": "/usr/local/bin/python3"
}
4 changes: 4 additions & 0 deletions CHANGES.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
0.0
---

- Initial version.
2 changes: 2 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
include *.txt *.ini *.cfg *.rst
recursive-include opportune *.ico *.png *.css *.gif *.jpg *.pt *.txt *.mak *.mako *.js *.html *.xml *.jinja2
1 change: 1 addition & 0 deletions Procfile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
web: ./run
115 changes: 114 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,114 @@
# Mildly-Sketchy
# Opportune

**Author**: Kat Cosgrove, Gene Pieterson, Patricia Raftery, Austin Matteson
**Version**: 1.4.1

## Overview

Opportune is a web application that uses a web scraper and keywords from the user to find jobs in their area related to their chosen search terms. To use, the user must register or log in, choose their location and job keywords, and Opportune will email to them a list of 20 job postings within their specifications. Their results will also be displayed on their profile page. At any time the user can go back and search again, with different keywords/city, or if they use the same they will not get the same job postings again. The user has the ability to delete or add keywords, change their email, or fully delete their account. Data analysis is displayed to the user on salaries for different keyword searches.

## How It Works

This application returns 30 job postings to the user on submit of their location and keyword preferences. It does this by using Beautiful Soup to scrape Indeed.com. The results are stored in a csv file and emailed to the user, and also displayed on their profile page. Data analysis is done on common keyword searches in Seattle comparing salaries using Jupyter Notebook and Bokeh.

## Getting Started

To replicate this app, you would fork and clone our GitHub https://github.com/Mildly-Sketchy/Opportune. Then you would need to start a virtual environment, install the packages to get the dependencies used in this app, and have 3 empty databases set up.

## Architecture

Three SQL databases are used for persistence to store job postings and user data. Pyramid is used for the framework, and the web scraper used is Beautiful Soup. Other technologies used are Python3, Travis CI, Jupyter notebook, pandas, Bokeh, HTML, CSS, and JavaScript. Heroku is used for deployment.

## Change Log

#### Prework

04/10/2018 1400 - Discussed project ideas

04/11/2018 1400 - Selected project idea

04/12/2018 1400 - Did wireframes and planning

04/13/2018 1400 - Created repository

04/13/2018 1400 - Created front-end mock-ups

04/15/2018 1400 - Created Pyramid framework

#### Day 1

04/16/2018 1000 - Deployed scaffolded site with Heroku

04/16/2018 1100 - Travis CI utilized

04/16/2018 1200 - CSV with test data can be successfully emailed to the user

04/16/2018 1300 - Databases dropped and rebuilt

04/16/2018 1400 - Update gitignore

04/16/2018 1430 - Basic web scraper functionality achieved within a jupyter notebook

04/16/2018 1500 - Web scraper transfered to the proper file in Pyramid, still works

#### Day 2

04/17/2018 0900 - Keywords can be stored in the SQL database

04/17/2018 0930 - Web scraper now accepts keywords stored in the database

04/17/2018 1030 - Web scraper can accept a single city and multiple job keywords

04/17/2018 1130 - Basic tests written for views, coverage at 54%

04/17/2018 1245 - Keywords can be deleted from the database

04/17/2018 1330 - Dummy data file created for testing scraper, using the data from Indeed with the python keyword

04/17/2018 1430 - The user can add keywords to their account, they display on their profile page, and can be selectively deleted

04/17/2018 1500 - Test for web scraper works. Test uses monkey patch to direct the scraper to the dummy data

04/17/2018 1600 - User's results are written to a csv and displayed on the profile page

04/17/2018 1700 - More styling and formatting done on the front end to make buttons look more appealing, improve organization

#### Day 3

04/18/2018 0900 - Merge developmenent branch to master branch, redeploy

04/18/2018 1030 - The user can update their email address or delete their entire account

04/18/2018 1130 - Front end styling for search page

04/18/2018 1230 - Testing with fake authenticated user can post keywords, passes

04/18/2018 1300 - Tests broken up in to different files

04/18/2018 1400 - Data Analysis for different properties of dev related keywords

#### Day 4

04/19/2018 0900 - 401 redirect for bad login caught, scraper now returns job summaries

04/19/2018 1000 - Small UI issues corrected, admin permissions for analytics page in place

04/19/2018 1100 - Forbidden view and existing username tests added

04/19/2018 1200 - Mass scraper notebook with CSV files added

04/19/2018 1300 - Data analysis done on the user's keyword searches and is displayed to the user's profile

04/19/2018 1400 - Test coverage is 85%

04/19/2018 1600 - Test coverage is 95%

04/19/2018 1800 - About Us page, pictures and descriptions added, styling done

#### Day 5

04/20/2018 0900 - Bug fixes with scraper and email

04/20/2018 1000 - LinkedIn and GitHub links added to About Us page, better styling done

04/20/2018 1400 - Presentation
33 changes: 33 additions & 0 deletions README.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
opportune
=========

Getting Started
---------------

- Change directory into your newly created project.

cd opportune

- Create a Python virtual environment.

python3 -m venv env

- Upgrade packaging tools.

env/bin/pip install --upgrade pip setuptools

- Install the project in editable mode with its testing requirements.

env/bin/pip install -e ".[testing]"

- Configure the database.

env/bin/initialize_opportune_db development.ini

- Run your project's tests.

env/bin/pytest

- Run your project.

env/bin/pserve development.ini
71 changes: 71 additions & 0 deletions development.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
###
# app configuration
# https://docs.pylonsproject.org/projects/pyramid/en/latest/narr/environment.html
###

[app:main]
use = egg:opportune

pyramid.reload_templates = true
pyramid.debug_authorization = false
pyramid.debug_notfound = false
pyramid.debug_routematch = false
pyramid.default_locale_name = en
pyramid.includes =
pyramid_debugtoolbar

sqlalchemy.url = postgres://localhost:5432/opportune_dev

retry.attempts = 3

# By default, the toolbar only appears for clients from IP addresses
# '127.0.0.1' and '::1'.
# debugtoolbar.hosts = 127.0.0.1 ::1

###
# wsgi server configuration
###

[server:main]
use = egg:waitress#main
listen = localhost:6543

###
# logging configuration
# https://docs.pylonsproject.org/projects/pyramid/en/latest/narr/logging.html
###

[loggers]
keys = root, opportune, sqlalchemy

[handlers]
keys = console

[formatters]
keys = generic

[logger_root]
level = INFO
handlers = console

[logger_opportune]
level = DEBUG
handlers =
qualname = opportune

[logger_sqlalchemy]
level = INFO
handlers =
qualname = sqlalchemy.engine
# "level = INFO" logs SQL queries.
# "level = DEBUG" logs SQL queries and results.
# "level = WARN" logs neither. (Recommended for production systems.)

[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = NOTSET
formatter = generic

[formatter_generic]
format = %(asctime)s %(levelname)-5.5s [%(name)s:%(lineno)s][%(threadName)s] %(message)s
Loading