SYMBOL INDEX (335 symbols across 102 files) FILE: backend/scripts/delete_old_data.py function get_filters (line 20) | def get_filters(cutoff_date: datetime) -> Any: function count_old_rows (line 29) | async def count_old_rows(cutoff_date: datetime) -> int: function delete_old_rows (line 35) | async def delete_old_rows(cutoff_date: datetime): function main (line 41) | async def main(): FILE: backend/scripts/local.py function parse_args (line 19) | def parse_args(): function main (line 48) | async def main(): FILE: backend/src/aggregation/layer0/contributions.py class ContribsList (line 36) | class ContribsList: method __init__ (line 37) | def __init__(self): method add (line 44) | def add(self, label: str, event: Union[RawEventsCommit, RawEventsEvent]): function get_user_all_contribution_events (line 57) | def get_user_all_contribution_events( function get_all_commit_info (line 100) | def get_all_commit_info( function get_all_commit_languages (line 120) | async def get_all_commit_languages( function get_cleaned_contributions (line 217) | async def get_cleaned_contributions( class StatsContainer (line 286) | class StatsContainer: method __init__ (line 287) | def __init__(self): method add_stat (line 297) | def add_stat(self, label: str, count: int, add: bool = False) -> None: method to_dict (line 314) | def to_dict(self) -> Dict[str, Any]: class ListsContainer (line 327) | class ListsContainer: method __init__ (line 328) | def __init__(self): method add_list (line 335) | def add_list(self, label: str, times: List[datetime]) -> None: method to_dict (line 347) | def to_dict(self) -> Dict[str, Any]: class DateContainer (line 357) | class DateContainer: method __init__ (line 358) | def __init__(self): method add_stat (line 364) | def add_stat( method to_dict (line 370) | def to_dict(self) -> Dict[str, Any]: function get_contributions (line 380) | async def get_contributions( FILE: backend/src/aggregation/layer0/follows.py function get_user_follows (line 10) | def get_user_follows(user_id: str, access_token: Optional[str]) -> UserF... FILE: backend/src/aggregation/layer0/languages.py class CommitLanguages (line 11) | class CommitLanguages: method __init__ (line 12) | def __init__(self): method __repr__ (line 15) | def __repr__(self): method add_lines (line 18) | def add_lines( method normalize (line 32) | def normalize(self, add_ratio: float, del_ratio: float): method __add__ (line 39) | def __add__(self, other: "CommitLanguages"): method to_dict (line 47) | def to_dict(self) -> Dict[str, Any]: function get_commit_languages (line 51) | def get_commit_languages( FILE: backend/src/aggregation/layer0/package.py function get_user_data (line 10) | async def get_user_data( FILE: backend/src/aggregation/layer1/auth.py function get_valid_github_user (line 17) | async def get_valid_github_user(user_id: str) -> Optional[str]: function get_valid_db_user (line 29) | async def get_valid_db_user(user_id: str) -> bool: function get_repo_stargazers (line 35) | async def get_repo_stargazers( function get_user_stars (line 50) | async def get_user_stars(user_id: str) -> List[str]: FILE: backend/src/aggregation/layer1/user.py function query_user_month (line 21) | async def query_user_month( function query_user (line 68) | async def query_user( FILE: backend/src/aggregation/layer2/auth.py function check_github_user_exists (line 15) | async def check_github_user_exists(user_id: str) -> Optional[str]: function check_db_user_exists (line 19) | async def check_db_user_exists(user_id: str) -> bool: function check_user_starred_repo (line 23) | async def check_user_starred_repo( function get_is_valid_user (line 40) | async def get_is_valid_user(user_id: str) -> Tuple[bool, str]: FILE: backend/src/aggregation/layer2/user.py function _get_user (line 16) | async def _get_user( function get_user (line 37) | async def get_user( function get_user_demo (line 65) | async def get_user_demo( FILE: backend/src/data/github/auth/main.py function get_unknown_user (line 11) | def get_unknown_user(access_token: str) -> Optional[str]: class OAuthError (line 26) | class OAuthError(Exception): function authenticate (line 30) | async def authenticate(code: str) -> Tuple[str, str]: FILE: backend/src/data/github/graphql/commit.py function get_commits (line 14) | def get_commits( FILE: backend/src/data/github/graphql/models.py class RawCommitPRFileNode (line 6) | class RawCommitPRFileNode(BaseModel): class RawCommitPRFile (line 12) | class RawCommitPRFile(BaseModel): class RawCommitPRNode (line 16) | class RawCommitPRNode(BaseModel): class RawCommitPR (line 23) | class RawCommitPR(BaseModel): class RawCommit (line 27) | class RawCommit(BaseModel): class RawRepoLanguageNode (line 35) | class RawRepoLanguageNode(BaseModel): class RawRepoLanguageEdge (line 40) | class RawRepoLanguageEdge(BaseModel): class RawRepoLanguage (line 45) | class RawRepoLanguage(BaseModel): class RawRepo (line 51) | class RawRepo(BaseModel): FILE: backend/src/data/github/graphql/repo.py function get_repo (line 7) | def get_repo( FILE: backend/src/data/github/graphql/template.py class GraphQLError (line 14) | class GraphQLError(Exception): class GraphQLErrorMissingNode (line 18) | class GraphQLErrorMissingNode(Exception): method __init__ (line 19) | def __init__(self, node: int, *args: Tuple[Any], **kwargs: Dict[str, A... class GraphQLErrorRateLimit (line 24) | class GraphQLErrorRateLimit(Exception): class GraphQLErrorTimeout (line 28) | class GraphQLErrorTimeout(Exception): function get_template (line 32) | def get_template( function get_query_limit (line 89) | def get_query_limit(access_token: str) -> int: FILE: backend/src/data/github/graphql/user/contribs/contribs.py function get_user_contribution_calendar (line 9) | def get_user_contribution_calendar( function get_user_contribution_events (line 48) | def get_user_contribution_events( FILE: backend/src/data/github/graphql/user/contribs/models.py class RawCalendarDay (line 7) | class RawCalendarDay(BaseModel): class RawCalendarWeek (line 13) | class RawCalendarWeek(BaseModel): class RawCalendar (line 17) | class RawCalendar(BaseModel): class RawEventsRepoName (line 21) | class RawEventsRepoName(BaseModel): class RawEventsCount (line 25) | class RawEventsCount(BaseModel): class RawEventsCommit (line 29) | class RawEventsCommit(BaseModel): class RawEventsEvent (line 34) | class RawEventsEvent(BaseModel): class RawEventsPageInfo (line 38) | class RawEventsPageInfo(BaseModel): class Config (line 42) | class Config: class RawEventsCommits (line 46) | class RawEventsCommits(BaseModel): class RawEventsContribs (line 51) | class RawEventsContribs(BaseModel): class RawEventsRepoCommits (line 56) | class RawEventsRepoCommits(BaseModel): class RawEventsRepo (line 62) | class RawEventsRepo(BaseModel): class RawEventsRepoEvent (line 68) | class RawEventsRepoEvent(BaseModel): class RawEventsRepoContribs (line 73) | class RawEventsRepoContribs(BaseModel): class RawEvents (line 78) | class RawEvents(BaseModel): FILE: backend/src/data/github/graphql/user/follows/follows.py function get_user_followers (line 8) | def get_user_followers( function get_user_following (line 66) | def get_user_following( FILE: backend/src/data/github/graphql/user/follows/models.py class PageInfo (line 8) | class PageInfo(BaseModel): class Config (line 12) | class Config: class RawFollows (line 16) | class RawFollows(BaseModel): FILE: backend/src/data/github/rest/commit.py function get_commit_files (line 9) | def get_commit_files( FILE: backend/src/data/github/rest/models.py class RawCommit (line 6) | class RawCommit(BaseModel): class RawCommitFile (line 11) | class RawCommitFile(BaseModel): FILE: backend/src/data/github/rest/repo.py function get_repo (line 12) | def get_repo(access_token: str, owner: str, repo: str) -> Dict[str, Any]: function get_repo_languages (line 24) | def get_repo_languages( function get_repo_stargazers (line 39) | def get_repo_stargazers( function get_repo_code_frequency (line 62) | def get_repo_code_frequency(access_token: str, owner: str, repo: str) ->... function get_repo_commit_activity (line 76) | def get_repo_commit_activity( function get_repo_contributors (line 92) | def get_repo_contributors(access_token: str, owner: str, repo: str) -> D... function get_repo_weekly_commits (line 106) | def get_repo_weekly_commits(access_token: str, owner: str, repo: str) ->... function get_repo_hourly_commits (line 120) | def get_repo_hourly_commits(access_token: str, owner: str, repo: str) ->... function get_repo_commits (line 132) | def get_repo_commits( FILE: backend/src/data/github/rest/template.py class RESTError (line 13) | class RESTError(Exception): class RESTErrorUnauthorized (line 17) | class RESTErrorUnauthorized(RESTError): class RESTErrorNotFound (line 21) | class RESTErrorNotFound(RESTError): class RESTErrorEmptyRepo (line 25) | class RESTErrorEmptyRepo(RESTError): class RESTErrorTimeout (line 29) | class RESTErrorTimeout(RESTError): function _get_template (line 33) | def _get_template( function get_template (line 80) | def get_template( function get_template_plural (line 95) | def get_template_plural( FILE: backend/src/data/github/rest/user.py function get_user (line 8) | def get_user(user_id: str, access_token: str) -> Dict[str, Any]: function get_user_starred_repos (line 17) | def get_user_starred_repos( FILE: backend/src/data/github/utils.py function get_access_token (line 6) | def get_access_token(access_token: Optional[str] = None) -> str: FILE: backend/src/data/mongo/main.py function get_conn_str (line 7) | def get_conn_str(password: str, database: str) -> str: FILE: backend/src/data/mongo/secret/functions.py function get_keys (line 12) | async def get_keys(no_cache: bool = False) -> Tuple[bool, List[str]]: function update_keys (line 24) | async def update_keys(no_cache: bool = False) -> None: function get_random_key (line 29) | def get_random_key() -> str: FILE: backend/src/data/mongo/secret/models.py class SecretModel (line 6) | class SecretModel(BaseModel): FILE: backend/src/data/mongo/user/functions.py function is_user_key (line 6) | async def is_user_key(user_id: str, user_key: str) -> bool: function update_user (line 13) | async def update_user(user_id: str, raw_user: Dict[str, Any]) -> None: function delete_user (line 21) | async def delete_user(user_id: str, user_key: str, use_user_key: bool = ... FILE: backend/src/data/mongo/user/get.py function get_public_user (line 11) | async def get_public_user( function get_full_user (line 25) | async def get_full_user( FILE: backend/src/data/mongo/user/models.py class PublicUserModel (line 6) | class PublicUserModel(BaseModel): class Config (line 11) | class Config: method set_name (line 16) | def set_name(cls, private_access: Optional[bool]): class FullUserModel (line 20) | class FullUserModel(PublicUserModel): FILE: backend/src/data/mongo/user_months/functions.py function set_user_month (line 5) | async def set_user_month(user_month: UserMonth): FILE: backend/src/data/mongo/user_months/get.py function get_user_months (line 10) | async def get_user_months( FILE: backend/src/data/mongo/user_months/models.py class UserMonth (line 8) | class UserMonth(BaseModel): FILE: backend/src/main.py function read_root (line 57) | async def read_root() -> Dict[str, str]: function get_info (line 62) | def get_info() -> Dict[str, bool]: FILE: backend/src/models/background.py class UpdateUserBackgroundTask (line 7) | class UpdateUserBackgroundTask(BaseModel): FILE: backend/src/models/svg.py class LanguageStats (line 6) | class LanguageStats(BaseModel): class RepoLanguage (line 13) | class RepoLanguage(BaseModel): class RepoStats (line 19) | class RepoStats(BaseModel): FILE: backend/src/models/user/contribs.py class Language (line 7) | class Language(BaseModel): method compress (line 12) | def compress(self) -> List[Any]: method decompress (line 16) | def decompress(cls, data: List[Any]) -> "Language": method __add__ (line 19) | def __add__(self, other: "Language") -> "Language": class ContributionStats (line 27) | class ContributionStats(BaseModel): method compress (line 37) | def compress(self) -> List[Any]: method decompress (line 54) | def decompress(cls, data: List[Any]) -> "ContributionStats": method __add__ (line 66) | def __add__(self, other: "ContributionStats") -> "ContributionStats": method empty (line 86) | def empty(cls) -> "ContributionStats": class ContributionLists (line 99) | class ContributionLists(BaseModel): method compress (line 106) | def compress(self) -> List[Any]: method decompress (line 110) | def decompress(cls, data: List[Any]) -> "ContributionLists": class ContributionDay (line 116) | class ContributionDay(BaseModel): method compress (line 122) | def compress(self) -> List[Any]: method decompress (line 131) | def decompress(cls, data: List[Any]) -> "ContributionDay": class RepoContributionStats (line 140) | class RepoContributionStats(ContributionStats, BaseModel): method compress (line 151) | def compress(self) -> List[Any]: method decompress (line 157) | def decompress(cls, data: List[Any]) -> "RepoContributionStats": method __add__ (line 162) | def __add__( # type: ignore class UserContributions (line 172) | class UserContributions(BaseModel): method compress (line 180) | def compress(self) -> List[Any]: method decompress (line 198) | def decompress(cls, data: List[Any]) -> "UserContributions": method __add__ (line 219) | def __add__(self, other: "UserContributions") -> "UserContributions": method trim_contribs (line 247) | def trim_contribs( method trim (line 277) | def trim(self, start: date, end: date) -> "UserContributions": method empty (line 302) | def empty(cls) -> "UserContributions": FILE: backend/src/models/user/follows.py class User (line 6) | class User(BaseModel): class Config (line 11) | class Config: class UserFollows (line 15) | class UserFollows(BaseModel): FILE: backend/src/models/user/main.py class UserPackage (line 11) | class UserPackage(BaseModel): method compress (line 15) | def compress(self): method decompress (line 21) | def decompress(cls, data: Dict[str, Any]) -> "UserPackage": method __add__ (line 26) | def __add__(self, other: "UserPackage") -> "UserPackage": method trim (line 29) | def trim(self, start: date, end: date) -> "UserPackage": method empty (line 33) | def empty(cls) -> "UserPackage": FILE: backend/src/models/wrapped/calendar.py class CalendarLanguageDayDatum (line 6) | class CalendarLanguageDayDatum(BaseModel): class CalendarDayDatum (line 11) | class CalendarDayDatum(BaseModel): class CalendarData (line 23) | class CalendarData(BaseModel): method empty (line 27) | def empty(cls) -> "CalendarData": FILE: backend/src/models/wrapped/langs.py class LangDatum (line 6) | class LangDatum(BaseModel): class LangData (line 14) | class LangData(BaseModel): method empty (line 19) | def empty(cls) -> "LangData": FILE: backend/src/models/wrapped/main.py class WrappedPackage (line 11) | class WrappedPackage(BaseModel): method empty (line 22) | def empty(cls) -> "WrappedPackage": FILE: backend/src/models/wrapped/numeric.py class ContribStats (line 6) | class ContribStats(BaseModel): method empty (line 15) | def empty(cls) -> "ContribStats": class MiscStats (line 26) | class MiscStats(BaseModel): method empty (line 38) | def empty(cls) -> "MiscStats": class LOCStats (line 52) | class LOCStats(BaseModel): method empty (line 62) | def empty(cls) -> "LOCStats": class NumericData (line 74) | class NumericData(BaseModel): method empty (line 80) | def empty(cls) -> "NumericData": FILE: backend/src/models/wrapped/repos.py class RepoDatum (line 6) | class RepoDatum(BaseModel): class RepoData (line 13) | class RepoData(BaseModel): method empty (line 18) | def empty(cls) -> "RepoData": FILE: backend/src/models/wrapped/time.py class TimeDatum (line 6) | class TimeDatum(BaseModel): class MonthData (line 13) | class MonthData(BaseModel): method empty (line 17) | def empty(cls) -> "MonthData": class DayData (line 21) | class DayData(BaseModel): method empty (line 25) | def empty(cls) -> "DayData": FILE: backend/src/models/wrapped/timestamps.py class TimestampDatum (line 6) | class TimestampDatum(BaseModel): class TimestampData (line 12) | class TimestampData(BaseModel): method empty (line 16) | def empty(cls) -> "TimestampData": FILE: backend/src/processing/auth.py function set_user_key (line 18) | async def set_user_key(code: str, user_key: str) -> str: function authenticate (line 23) | async def authenticate( function delete_user (line 66) | async def delete_user(user_id: str, user_key: str, use_user_key: bool = ... FILE: backend/src/processing/user/commits.py function loc_metric_func (line 10) | def loc_metric_func(loc_metric: str, additions: int, deletions: int) -> ... function get_top_languages (line 16) | def get_top_languages( function get_top_repos (line 60) | def get_top_repos( FILE: backend/src/processing/user/svg.py function svg_base (line 10) | async def svg_base( FILE: backend/src/processing/wrapped/calendar.py function get_calendar_data (line 7) | def get_calendar_data(data: UserPackage, year: int) -> CalendarData: FILE: backend/src/processing/wrapped/langs.py function _count_loc (line 8) | def _count_loc(x: Language, metric: str) -> int: function get_lang_data (line 14) | def get_lang_data(data: UserPackage) -> LangData: FILE: backend/src/processing/wrapped/main.py function query_wrapped_user (line 12) | async def query_wrapped_user( FILE: backend/src/processing/wrapped/numeric.py function get_contrib_stats (line 8) | def get_contrib_stats(data: UserPackage) -> ContribStats: function get_misc_stats (line 21) | def get_misc_stats(data: UserPackage, year: int) -> MiscStats: function format_loc_number (line 83) | def format_loc_number(number: int) -> str: function get_loc_stats (line 91) | def get_loc_stats(data: UserPackage) -> LOCStats: function get_numeric_data (line 122) | def get_numeric_data(data: UserPackage, year: int) -> NumericData: FILE: backend/src/processing/wrapped/package.py function get_wrapped_data (line 12) | def get_wrapped_data(user_package: UserPackage, year: int) -> WrappedPac... FILE: backend/src/processing/wrapped/repos.py function _count_loc (line 7) | def _count_loc(x: Language, metric: str) -> int: function _count_repo_loc (line 13) | def _count_repo_loc(x: RepoContributionStats, metric: str) -> int: function get_repo_data (line 17) | def get_repo_data(data: UserPackage) -> RepoData: FILE: backend/src/processing/wrapped/time.py function get_month_data (line 9) | def get_month_data(data: UserPackage) -> MonthData: function get_day_data (line 37) | def get_day_data(data: UserPackage) -> DayData: FILE: backend/src/processing/wrapped/timestamps.py function date_to_seconds_since_midnight (line 10) | def date_to_seconds_since_midnight(date: datetime) -> int: function get_timestamp_data (line 14) | def get_timestamp_data(data: UserPackage) -> TimestampData: FILE: backend/src/render/error.py function get_error_svg (line 12) | def get_error_svg() -> Drawing: function get_empty_demo_svg (line 43) | def get_empty_demo_svg(header: str) -> Drawing: function get_loading_svg (line 76) | def get_loading_svg() -> Drawing: function get_no_data_svg (line 111) | def get_no_data_svg(header: str, subheader: str) -> Drawing: FILE: backend/src/render/style.py function get_style (line 55) | def get_style(theme: str = "classic", use_animation: bool = True) -> str: FILE: backend/src/render/template.py function get_template (line 13) | def get_template( function get_bar_section (line 55) | def get_bar_section( function get_lang_name_section (line 111) | def get_lang_name_section( FILE: backend/src/render/top_langs.py function get_top_langs_svg (line 13) | def get_top_langs_svg( FILE: backend/src/render/top_repos.py function get_top_repos_svg (line 14) | def get_top_repos_svg( FILE: backend/src/routers/assets/assets.py function get_error_img (line 8) | async def get_error_img(): function get_stopwatch_img (line 13) | async def get_stopwatch_img(): FILE: backend/src/routers/auth/standalone.py function redirect_public (line 15) | def redirect_public(user_id: Optional[str] = None) -> RedirectResponse: function redirect_private (line 20) | def redirect_private(user_id: Optional[str] = None) -> RedirectResponse: function redirect_return (line 25) | async def redirect_return(code: str = "", private_access: bool = False) ... function delete_account_auth (line 35) | async def delete_account_auth(user_id: str) -> RedirectResponse: function delete_account (line 42) | async def delete_account(user_id: str) -> RedirectResponse: FILE: backend/src/routers/auth/website.py function set_user_key_endpoint (line 21) | async def set_user_key_endpoint(response: Response, code: str, user_key:... function authenticate_endpoint (line 32) | async def authenticate_endpoint( function delete_user_endpoint (line 52) | async def delete_user_endpoint(response: Response, user_id: str, user_ke... FILE: backend/src/routers/background.py function run_in_background (line 10) | async def run_in_background(task: UpdateUserBackgroundTask): FILE: backend/src/routers/decorators.py function get_redirect_url (line 16) | def get_redirect_url( function svg_fail_gracefully (line 45) | def svg_fail_gracefully(func: Callable[..., Any]): FILE: backend/src/routers/dev.py function get_user_raw (line 19) | async def get_user_raw( function get_wrapped_user_raw (line 40) | async def get_wrapped_user_raw( FILE: backend/src/routers/users/db.py function update_keys_endpoint (line 19) | async def update_keys_endpoint(response: Response) -> bool: function get_db_public_user (line 31) | async def get_db_public_user( FILE: backend/src/routers/users/main.py function get_user_endpoint (line 25) | async def get_user_endpoint( FILE: backend/src/routers/users/svg.py function get_user_lang_svg (line 25) | async def get_user_lang_svg( function get_user_repo_svg (line 72) | async def get_user_repo_svg( function get_demo_svg (line 121) | async def get_demo_svg(response: Response, card: str) -> Any: FILE: backend/src/routers/wrapped.py function check_valid_user (line 17) | async def check_valid_user(response: Response, user_id: str) -> str: function get_wrapped_user (line 23) | async def get_wrapped_user( FILE: backend/src/utils/alru_cache.py function alru_cache (line 21) | def alru_cache(max_size: int = 128, ttl: timedelta = timedelta(minutes=1)): FILE: backend/src/utils/decorators.py function fail_gracefully (line 9) | def fail_gracefully(func: Callable[..., Any]): function async_fail_gracefully (line 28) | def async_fail_gracefully(func: Callable[..., Any]): FILE: backend/src/utils/gather.py function async_function (line 6) | def async_function(func: Callable[..., Any]) -> Callable[..., Any]: function gather_with_concurrency (line 16) | async def gather_with_concurrency( function gather (line 28) | async def gather( FILE: backend/src/utils/utils.py function date_to_datetime (line 5) | def date_to_datetime( function use_time_range (line 12) | def use_time_range( function format_number (line 37) | def format_number(num: int) -> str: FILE: backend/tests/aggregation/layer0/test_contributions.py class TestTemplate (line 10) | class TestTemplate(AsyncTestCase): method test_get_contributions (line 11) | async def test_get_contributions(self): FILE: backend/tests/aggregation/layer0/test_follows.py class TestTemplate (line 8) | class TestTemplate(unittest.TestCase): method test_get_follows (line 9) | def test_get_follows(self): FILE: backend/tests/data/github/auth/test_main.py class TestTemplate (line 7) | class TestTemplate(unittest.TestCase): method test_get_unknown_user_valid (line 8) | def test_get_unknown_user_valid(self): method test_get_unknown_user_invalid (line 12) | def test_get_unknown_user_invalid(self): FILE: backend/tests/data/github/graphql/test_commits.py class TestTemplate (line 7) | class TestTemplate(unittest.TestCase): method test_get_commits (line 8) | def test_get_commits(self): method test_get_commits_invalid_access_token (line 17) | def test_get_commits_invalid_access_token(self): method test_get_commits_invalid_node_ids (line 25) | def test_get_commits_invalid_node_ids(self): FILE: backend/tests/data/github/graphql/test_repo.py class TestTemplate (line 11) | class TestTemplate(unittest.TestCase): method test_get_repo (line 12) | def test_get_repo(self): method test_get_repo_invalid_access_token (line 23) | def test_get_repo_invalid_access_token(self): method test_get_commits_invalid_args (line 29) | def test_get_commits_invalid_args(self): FILE: backend/tests/data/github/graphql/test_user_contribs.py class TestTemplate (line 13) | class TestTemplate(unittest.TestCase): method test_get_user_contribution_calendar (line 14) | def test_get_user_contribution_calendar(self): method test_get_user_contribution_events (line 24) | def test_get_user_contribution_events(self): FILE: backend/tests/data/github/graphql/test_user_follows.py class TestTemplate (line 7) | class TestTemplate(unittest.TestCase): method test_get_user_followers (line 8) | def test_get_user_followers(self): method test_get_user_following (line 15) | def test_get_user_following(self): FILE: backend/tests/data/github/rest/test_commit.py class TestTemplate (line 12) | class TestTemplate(unittest.TestCase): method test_get_commit_files (line 13) | def test_get_commit_files(self): method test_get_commit_files_invalid_access_token (line 20) | def test_get_commit_files_invalid_access_token(self): method test_get_commit_files_invalid_args (line 24) | def test_get_commit_files_invalid_args(self): FILE: backend/tests/data/github/rest/test_repo.py class TestTemplate (line 11) | class TestTemplate(unittest.TestCase): method test_get_repo_commits (line 12) | def test_get_repo_commits(self): method test_get_repo_commits_invalid_access_token (line 17) | def test_get_repo_commits_invalid_access_token(self): method test_get_repo_commits_invalid_args (line 21) | def test_get_repo_commits_invalid_args(self): FILE: backend/tests/utils/test_alru_cache.py class TestTemplate (line 10) | class TestTemplate(AsyncTestCase): method test_basic_alru_cache (line 11) | async def test_basic_alru_cache(self): method test_alru_cache_with_flag (line 32) | async def test_alru_cache_with_flag(self): method test_alru_cache_with_maxsize (line 53) | async def test_alru_cache_with_maxsize(self): method test_alru_cache_with_ttl (line 72) | async def test_alru_cache_with_ttl(self): method test_alru_cache_with_no_cache (line 90) | async def test_alru_cache_with_no_cache(self): FILE: frontend/src/api/user.js constant URL_PREFIX (line 6) | const URL_PREFIX = BACKEND_URL; FILE: frontend/src/api/wrapped.js constant URL_PREFIX (line 7) | const URL_PREFIX = `${BACKEND_URL}/wrapped`; FILE: frontend/src/constants.js constant PROD (line 2) | const PROD = process.env.REACT_APP_PROD === 'true'; constant USE_LOGGER (line 4) | const USE_LOGGER = true; constant CLIENT_ID (line 6) | const CLIENT_ID = PROD constant MODE (line 10) | const MODE = process.env.REACT_APP_MODE; constant REDIRECT_URI (line 12) | const REDIRECT_URI = PROD constant GITHUB_PRIVATE_AUTH_URL (line 20) | const GITHUB_PRIVATE_AUTH_URL = `https://github.com/login/oauth/authoriz... constant GITHUB_PUBLIC_AUTH_URL (line 21) | const GITHUB_PUBLIC_AUTH_URL = `https://github.com/login/oauth/authorize... constant WRAPPED_URL (line 23) | const WRAPPED_URL = PROD constant BACKEND_URL (line 27) | const BACKEND_URL = PROD constant CURR_YEAR (line 31) | const CURR_YEAR = 2024; FILE: frontend/src/pages/App/AppTrends.js function WrappedAuthRedirectScreen (line 26) | function WrappedAuthRedirectScreen() { function WrappedRedirectScreen (line 37) | function WrappedRedirectScreen() { function App (line 53) | function App() { FILE: frontend/src/pages/App/AppWrapped.js function App (line 17) | function App() { FILE: frontend/src/pages/App/Footer.js function Footer (line 4) | function Footer() { FILE: frontend/src/pages/Home/Home.js function redirectCode (line 98) | async function redirectCode() { FILE: frontend/src/pages/Landing/Landing.js function LandingScreen (line 19) | function LandingScreen() { FILE: frontend/src/pages/Misc/Redirect.js function redirectCode (line 7) | async function redirectCode() { FILE: frontend/src/pages/Settings/Settings.js function useOutsideAlerter (line 41) | function useOutsideAlerter(ref, action) { FILE: frontend/src/pages/Wrapped/SelectUser.js function redirectCode (line 39) | async function redirectCode() { FILE: frontend/src/pages/Wrapped/Wrapped.js function getData (line 59) | async function getData() { FILE: frontend/src/redux/actions/userActions.js constant LOGIN (line 1) | const LOGIN = 'LOGIN'; constant LOGOUT (line 2) | const LOGOUT = 'LOGOUT'; constant SET_PRIVATE_ACCESS (line 3) | const SET_PRIVATE_ACCESS = 'SET_PRIVATE_ACCESS'; function login (line 5) | function login(userId, userKey) { function logout (line 9) | function logout() { function setPrivateAccess (line 13) | function setPrivateAccess(privateAccess) { FILE: frontend/src/redux/store.js function configureStore (line 7) | function configureStore(intialState) { FILE: frontend/src/utils.js function sleep (line 1) | function sleep(ms) { function classnames (line 6) | function classnames(...args) {