Skip to content

feat: fetch-feeds sub command and other changes #3

@Ananya2001-an

Description

@Ananya2001-an

So I am laying out the changes that we would probably want to see next:

list-feeds sub command to have 3 options (--bbox, --predicate and --pretty)

  • by default we will show all the feed sources if no bbox input is given
  • we might have to add a dependency for the predicate option on the bbox option since there's no use of it without bbox values given
  • the pretty option for printing out the pretty table else we would just show the feed sources as a list ([nils] it should be output to stdout either separated by some character, e.g. space-separated, then we could even easily loop over the output in bash)
  • now these feed sources should have a way to pipe them as input for the fetch feeds command; probably something like being able to select them ig
  • [nils] we might have to do some (fuzzy?) text-matching when people want to search for e.g. *berlin* when they want to get the exact name of a feed, but don't know what a feed is called exactly. I think fuzzy matching is over the top, a simple in would suffice IMO. needs to be a command line arg like --search or so. or even support regex, or both regex and simple text search. wdyt @Ananya2001-an ?

fetch-feeds sub command to have one option i.e --sources

  • we will pass it as a string separated by commas
  • we can pass the source names like ['Berlin', ...] same names as the modules inside feed sources dir
  • also following the fetch code here: https://github.com/azavea/gtfs-feed-fetcher/blob/develop/FeedSource.py we are currently downloading the "latest" gtfs feed and then printing all info regarding its status inside a table which is nice but are we going to do something else along with that? I guess not since we just need the downloaded feed for the valhalla build instance later on….we would need to create an empty folder for the storing of those downloads ([nils] that should be a command line arg e.g. --output-dir)…like in the azavea repo they had "gtfs"
  • The check_status and extend_effective_dates utils are good for the downloaded feeds
  • [nils] we should multi-thread at the very least the downloading via a command line arg e.g. --concurrency for a pool of threads. here we can use threading as it's mostly network I/O which works quite well with python's threading (actual processing wouldn't because of the GIL, which kinda makes sure python can only run one thread at a time)

I guess the code written already is pretty good for the downloading and stuff so we will mostly copy paste but might have to still make some modifications as needed…feel free to add on to the list :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions