Skip to content

Commit e2cabc9

Browse files
committed
Run Black to apply consistent code styling
1 parent e613349 commit e2cabc9

33 files changed

Lines changed: 1086 additions & 905 deletions

.editorconfig

Lines changed: 0 additions & 2 deletions
This file was deleted.

.flake8

Lines changed: 0 additions & 1 deletion
This file was deleted.

Pipfile

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ cchardet = "*"
1515
zipcodes = "*"
1616

1717
[dev-packages]
18-
flake8 = "*"
19-
flake8-quotes = "*"
2018
requests = "*"
2119
pytest = "*"
2220
pytest-mock = "*"

Pipfile.lock

Lines changed: 1 addition & 44 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pybot/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@
44
from dotenv import load_dotenv
55

66
""" Loads values from .env file for local development """
7-
url = Path(os.path.dirname(os.path.dirname(__file__))) / 'docker' / 'pybot.env'
7+
url = Path(os.path.dirname(os.path.dirname(__file__))) / "docker" / "pybot.env"
88
load_dotenv(dotenv_path=url)

pybot/__main__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def make_sentry_logger():
3232
if __name__ == "__main__":
3333
try:
3434
with open(
35-
os.path.join(os.path.dirname(os.path.realpath(__file__)), "../logging.yml")
35+
os.path.join(os.path.dirname(os.path.realpath(__file__)), "../logging.yml")
3636
) as log_configfile:
3737
logging.config.dictConfig(yaml.load(log_configfile.read()))
3838
except Exception as e:
@@ -54,6 +54,6 @@ def make_sentry_logger():
5454

5555
# Add route to respond to AWS health check
5656
bot.router.add_get("/health", lambda request: Response(status=200))
57-
logging.getLogger('aiohttp.access').setLevel(logging.WARNING)
57+
logging.getLogger("aiohttp.access").setLevel(logging.WARNING)
5858

5959
bot.start(host=HOST, port=PORT, print=logger.info)

pybot/endpoints/airtable/message_templates/messages.py

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33

44
def mentor_request_text(user_id, service, skillsets, requested_mentor_message=None):
55
if not skillsets:
6-
skillsets = 'None provided'
7-
text = (f"User <@{user_id}> has requested a mentor for {service}\n\n"
8-
f"Requested Skillset(s): {skillsets.replace(',', ', ')}")
6+
skillsets = "None provided"
7+
text = (
8+
f"User <@{user_id}> has requested a mentor for {service}\n\n"
9+
f"Requested Skillset(s): {skillsets.replace(',', ', ')}"
10+
)
911

1012
if requested_mentor_message:
1113
text += requested_mentor_message
@@ -14,17 +16,21 @@ def mentor_request_text(user_id, service, skillsets, requested_mentor_message=No
1416

1517

1618
def claim_mentee_attachment(record: str) -> List[dict]:
17-
return [{
18-
'text': '',
19-
'fallback': '',
20-
'color': '#3AA3E3',
21-
'callback_id': 'claim_mentee',
22-
'attachment_type': 'default',
23-
'actions': [{
24-
'name': f'{record}',
25-
'text': 'Claim Mentee',
26-
'type': 'button',
27-
'style': 'primary',
28-
'value': f'mentee_claimed',
29-
}]
30-
}]
19+
return [
20+
{
21+
"text": "",
22+
"fallback": "",
23+
"color": "#3AA3E3",
24+
"callback_id": "claim_mentee",
25+
"attachment_type": "default",
26+
"actions": [
27+
{
28+
"name": f"{record}",
29+
"text": "Claim Mentee",
30+
"type": "button",
31+
"style": "primary",
32+
"value": f"mentee_claimed",
33+
}
34+
],
35+
}
36+
]

pybot/endpoints/airtable/requests.py

Lines changed: 27 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,19 @@
22
import asyncio
33
import logging
44

5-
from pybot.endpoints.airtable.utils import (_create_messages, _get_matching_skillset_mentors, _get_requested_mentor,
6-
_post_messages, _slack_user_id_from_email)
5+
from pybot.endpoints.airtable.utils import (
6+
_create_messages,
7+
_get_matching_skillset_mentors,
8+
_get_requested_mentor,
9+
_post_messages,
10+
_slack_user_id_from_email,
11+
)
712

813
logger = logging.getLogger(__name__)
914

1015

1116
def create_endpoints(plugin):
12-
plugin.on_request('mentor_request', mentor_request)
17+
plugin.on_request("mentor_request", mentor_request)
1318

1419

1520
async def mentor_request(request: dict, app: SirBot) -> None:
@@ -19,19 +24,26 @@ async def mentor_request(request: dict, app: SirBot) -> None:
1924
Queries Airtable to find mentors matching the requested skillsets and posts a message
2025
in the Mentor slack channel.
2126
"""
22-
slack = app.plugins['slack'].api
23-
airtable = app.plugins['airtable'].api
27+
slack = app.plugins["slack"].api
28+
airtable = app.plugins["airtable"].api
2429

2530
id_fallback = f" [couldn't find user - email provided: {request['email']} ]"
26-
slack_id = await _slack_user_id_from_email(request['email'], slack, fallback=id_fallback)
27-
28-
futures = [airtable.get_name_from_record_id('Services', request['service']),
29-
_get_requested_mentor(request.get('requested_mentor'), slack, airtable),
30-
_get_matching_skillset_mentors(request.get('skillsets'), slack, airtable)]
31-
32-
service_translation, requested_mentor_message, mentors = await asyncio.gather(*futures)
33-
34-
first_message, *children = _create_messages(mentors, request, requested_mentor_message, service_translation,
35-
slack_id)
31+
slack_id = await _slack_user_id_from_email(
32+
request["email"], slack, fallback=id_fallback
33+
)
34+
35+
futures = [
36+
airtable.get_name_from_record_id("Services", request["service"]),
37+
_get_requested_mentor(request.get("requested_mentor"), slack, airtable),
38+
_get_matching_skillset_mentors(request.get("skillsets"), slack, airtable),
39+
]
40+
41+
service_translation, requested_mentor_message, mentors = await asyncio.gather(
42+
*futures
43+
)
44+
45+
first_message, *children = _create_messages(
46+
mentors, request, requested_mentor_message, service_translation, slack_id
47+
)
3648

3749
await _post_messages(first_message, children, app)

pybot/endpoints/airtable/utils.py

Lines changed: 50 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -10,63 +10,85 @@
1010
from .message_templates.messages import claim_mentee_attachment, mentor_request_text
1111

1212

13-
async def _get_requested_mentor(requested_mentor: Optional[str], slack: SlackAPI,
14-
airtable: AirtableAPI) -> Optional[str]:
13+
async def _get_requested_mentor(
14+
requested_mentor: Optional[str], slack: SlackAPI, airtable: AirtableAPI
15+
) -> Optional[str]:
1516
try:
1617
if not requested_mentor:
1718
return None
18-
mentor = await airtable.get_row_from_record_id('Mentors', requested_mentor)
19-
email = mentor['Email']
19+
mentor = await airtable.get_row_from_record_id("Mentors", requested_mentor)
20+
email = mentor["Email"]
2021
slack_user_id = await _slack_user_id_from_email(email, slack)
2122
return f" Requested mentor: <@{slack_user_id}>"
2223
except SlackAPIError:
2324
return None
2425

2526

26-
async def _slack_user_id_from_email(email: str, slack: SlackAPI, fallback: Optional[str] = None) -> str:
27+
async def _slack_user_id_from_email(
28+
email: str, slack: SlackAPI, fallback: Optional[str] = None
29+
) -> str:
2730
try:
28-
response = await slack.query(url=ROOT_URL + 'users.lookupByEmail', data={'email': email})
29-
return response['user']['id']
31+
response = await slack.query(
32+
url=ROOT_URL + "users.lookupByEmail", data={"email": email}
33+
)
34+
return response["user"]["id"]
3035
except SlackAPIError:
31-
# TODO: something better here
32-
return fallback or 'Slack User'
36+
return fallback or "Slack User"
3337

3438

35-
async def _get_matching_skillset_mentors(skillsets: str, slack: SlackAPI, airtable: AirtableAPI) -> List[str]:
39+
async def _get_matching_skillset_mentors(
40+
skillsets: str, slack: SlackAPI, airtable: AirtableAPI
41+
) -> List[str]:
3642
if not skillsets:
37-
return ['No skillset Given']
43+
return ["No skillset Given"]
3844
mentors = await airtable.find_mentors_with_matching_skillsets(skillsets)
39-
mentor_ids = [await _slack_user_id_from_email(mentor['Email'], slack, fallback=mentor['Slack Name']) for mentor in
40-
mentors]
41-
return [f'<@{mentor}>' for mentor in mentor_ids]
45+
mentor_ids = [
46+
await _slack_user_id_from_email(
47+
mentor["Email"], slack, fallback=mentor["Slack Name"]
48+
)
49+
for mentor in mentors
50+
]
51+
return [f"<@{mentor}>" for mentor in mentor_ids]
4252

4353

44-
def _create_messages(mentors: List[str], request: dict, requested_mentor_message: str, service_translation: str,
45-
slack_id: str) -> Tuple[dict, dict, dict]:
54+
def _create_messages(
55+
mentors: List[str],
56+
request: dict,
57+
requested_mentor_message: str,
58+
service_translation: str,
59+
slack_id: str,
60+
) -> Tuple[dict, dict, dict]:
4661
first_message = {
47-
'text': mentor_request_text(slack_id, service_translation, request.get('skillsets', None),
48-
requested_mentor_message),
49-
'attachments': claim_mentee_attachment(request['record']),
50-
'channel': MENTOR_CHANNEL
62+
"text": mentor_request_text(
63+
slack_id,
64+
service_translation,
65+
request.get("skillsets", None),
66+
requested_mentor_message,
67+
),
68+
"attachments": claim_mentee_attachment(request["record"]),
69+
"channel": MENTOR_CHANNEL,
5170
}
5271

5372
details_message = {
54-
'text': f"Additional details: {request.get('details', 'None Given')}",
55-
'channel': MENTOR_CHANNEL
73+
"text": f"Additional details: {request.get('details', 'None Given')}",
74+
"channel": MENTOR_CHANNEL,
5675
}
5776

5877
matching_mentors_message = {
59-
'text': "Mentors matching all or some of the requested skillsets: " + ' '.join(mentors),
60-
'channel': MENTOR_CHANNEL
78+
"text": "Mentors matching all or some of the requested skillsets: "
79+
+ " ".join(mentors),
80+
"channel": MENTOR_CHANNEL,
6181
}
6282

6383
return first_message, details_message, matching_mentors_message
6484

6585

6686
async def _post_messages(parent: Message, children: List[Message], app: SirBot) -> None:
67-
response = await app.plugins['slack'].api.query(url=methods.CHAT_POST_MESSAGE, data=parent)
68-
timestamp = response['ts']
87+
response = await app.plugins["slack"].api.query(
88+
url=methods.CHAT_POST_MESSAGE, data=parent
89+
)
90+
timestamp = response["ts"]
6991

7092
for child in children:
71-
child['thread_ts'] = timestamp
72-
await app.plugins['slack'].api.query(url=methods.CHAT_POST_MESSAGE, data=child)
93+
child["thread_ts"] = timestamp
94+
await app.plugins["slack"].api.query(url=methods.CHAT_POST_MESSAGE, data=child)

0 commit comments

Comments
 (0)