cmsetzer / autocensus

Python package for collecting ACS and geospatial data from the Census API
MIT License
21 stars 6 forks source link

quickstart example fails, 'autocensus.geography' is not a package #31

Open wenya-shen opened 2 weeks ago

wenya-shen commented 2 weeks ago

The quickstart example fails returning the following errors.

Retrieving variables... Retrieving ACS tables... Retrieving Gazetteer files...

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[21], [line 17](vscode-notebook-cell:?execution_count=21&line=17)
      [4](vscode-notebook-cell:?execution_count=21&line=4) query = Query(
      [5](vscode-notebook-cell:?execution_count=21&line=5)     estimate=1,
      [6](vscode-notebook-cell:?execution_count=21&line=6)     years=[2017, 2022],
   (...)
     [13](vscode-notebook-cell:?execution_count=21&line=13)     census_api_key='30c91c787c22a4d7a8f34fb4bd04db9e68a63459'
     [14](vscode-notebook-cell:?execution_count=21&line=14) )
     [16](vscode-notebook-cell:?execution_count=21&line=16) # Run query and collect output in dataframe
---> [17](vscode-notebook-cell:?execution_count=21&line=17) dataframe = query.run()

File c:\Users\leesj-legip5\anaconda3\envs\econ311\Lib\site-packages\autocensus\query.py:446, in Query.run(self)
    [444](file:///C:/Users/leesj-legip5/anaconda3/envs/econ311/Lib/site-packages/autocensus/query.py:444) if self.geometry == 'points':
    [445](file:///C:/Users/leesj-legip5/anaconda3/envs/econ311/Lib/site-packages/autocensus/query.py:445)     logger.info('Retrieving Gazetteer files...')
--> [446](file:///C:/Users/leesj-legip5/anaconda3/envs/econ311/Lib/site-packages/autocensus/query.py:446)     gazetteer_files.extend(self.get_gazetteer_files())
    [447](file:///C:/Users/leesj-legip5/anaconda3/envs/econ311/Lib/site-packages/autocensus/query.py:447) elif self.geometry == 'polygons':
    [448](file:///C:/Users/leesj-legip5/anaconda3/envs/econ311/Lib/site-packages/autocensus/query.py:448)     logger.info('Retrieving shapefiles...')

File c:\Users\leesj-legip5\anaconda3\envs\econ311\Lib\site-packages\autocensus\query.py:221, in Query.get_gazetteer_files(self)
    [219](file:///C:/Users/leesj-legip5/anaconda3/envs/econ311/Lib/site-packages/autocensus/query.py:219)     calls.append(call)
    [220](file:///C:/Users/leesj-legip5/anaconda3/envs/econ311/Lib/site-packages/autocensus/query.py:220) # Make concurrent API calls
--> [221](file:///C:/Users/leesj-legip5/anaconda3/envs/econ311/Lib/site-packages/autocensus/query.py:221) results = asyncio.run(self._census_api.gather_calls(calls))
    [222](file:///C:/Users/leesj-legip5/anaconda3/envs/econ311/Lib/site-packages/autocensus/query.py:222) gazetteer_files = list(results)
    [223](file:///C:/Users/leesj-legip5/anaconda3/envs/econ311/Lib/site-packages/autocensus/query.py:223) return gazetteer_files
...
     [54](file:///C:/Users/leesj-legip5/anaconda3/envs/econ311/Lib/importlib/resources/_common.py:54) if wrap_spec(resolved).submodule_search_locations is None:
---> [55](file:///C:/Users/leesj-legip5/anaconda3/envs/econ311/Lib/importlib/resources/_common.py:55)     raise TypeError(f'{package!r} is not a package')
     [56](file:///C:/Users/leesj-legip5/anaconda3/envs/econ311/Lib/importlib/resources/_common.py:56) return resolved

TypeError: 'autocensus.geography' is not a package
greg-larsen commented 1 week ago

I've had similar issues, which resulted from invocations of

importlib.resources.files(__name__)

by autocensus.geography (and also autocensus.query and autocensus.utilities) when importing csv files from path-to-venv/lib/python3.10/site-packages/autocensus. Substituting

importlib.resources.files("autocensus")

restored functionality.