<type 'exceptions.AttributeError'> | Python 2.7.17: /usr/bin/python Thu Jun 8 05:29:29 2023 |
A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.
/usr/lib/python2.7/dist-packages/trac/web/_fcgi.py in run(self=<trac.web._fcgi.Request object>) |
568 """Runs the handler, flushes the streams, and ends the request.""" |
569 try: |
=> 570 protocolStatus, appStatus = self.server.handler(self) |
571 except: |
572 traceback.print_exc(file=self.stderr) |
protocolStatus undefined, appStatus undefined, self = <trac.web._fcgi.Request object>, self.server = <trac.web._fcgi.WSGIServer object>, self.server.handler = <bound method WSGIServer.handler of <trac.web._fcgi.WSGIServer object>> |
/usr/lib/python2.7/dist-packages/trac/web/_fcgi.py in handler(self=<trac.web._fcgi.WSGIServer object>, req=<trac.web._fcgi.Request object>) |
1260 try: |
1261 try: |
=> 1262 result = self.application(environ, start_response) |
1263 try: |
1264 for data in result: |
result = None, self = <trac.web._fcgi.WSGIServer object>, self.application = <function dispatch_request>, environ = {'CONTENT_LENGTH': '0', 'CONTEXT_DOCUMENT_ROOT': '/home/spapadim/bitquill.net', 'CONTEXT_PREFIX': '', 'DH_USER': 'spapadim', 'DOCUMENT_ROOT': '/home/spapadim/bitquill.net', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'HTTP_ACCEPT_ENCODING': 'br,gzip', 'HTTP_ACCEPT_LANGUAGE': 'en-US,en;q=0.5', 'HTTP_CONNECTION': 'close', ...}, start_response = <function start_response> |
/usr/lib/python2.7/dist-packages/trac/web/main.py in dispatch_request(environ={'CONTENT_LENGTH': '0', 'CONTEXT_DOCUMENT_ROOT': '/home/spapadim/bitquill.net', 'CONTEXT_PREFIX': '', 'DH_USER': 'spapadim', 'DOCUMENT_ROOT': '/home/spapadim/bitquill.net', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'HTTP_ACCEPT_ENCODING': 'br,gzip', 'HTTP_ACCEPT_LANGUAGE': 'en-US,en;q=0.5', 'HTTP_CONNECTION': 'close', ...}, start_response=<function start_response>) |
579 translation.make_activable(lambda: req.locale, env.path if env else None) |
580 try: |
=> 581 return _dispatch_request(req, env, env_error) |
582 finally: |
583 translation.deactivate() |
global _dispatch_request = <function _dispatch_request>, req = <RequestWithSession "GET '/wiki/Android/OCR'">, env = <Environment '/home/spapadim/trac/bitq'>, env_error = None |
/usr/lib/python2.7/dist-packages/trac/web/main.py in _dispatch_request(req=<RequestWithSession "GET '/wiki/Android/OCR'">, env=<Environment '/home/spapadim/trac/bitq'>, env_error=None) |
618 _send_user_error(req, env, e) |
619 except Exception: |
=> 620 send_internal_error(env, req, sys.exc_info()) |
621 return resp |
622 |
global send_internal_error = <function send_internal_error>, env = <Environment '/home/spapadim/trac/bitq'>, req = <RequestWithSession "GET '/wiki/Android/OCR'">, global sys = <module 'sys' (built-in)>, sys.exc_info = <built-in function exc_info> |
/usr/lib/python2.7/dist-packages/trac/web/main.py in send_internal_error(env=<Environment '/home/spapadim/trac/bitq'>, req=<RequestWithSession "GET '/wiki/Android/OCR'">, exc_info=(<type 'exceptions.AttributeError'>, AttributeError("'RepositoryManager' object has no attribute 'repository_dir'",), <traceback object>)) |
747 'description': description, 'description_en': description_en} |
748 |
=> 749 Chrome(env).add_jquery_ui(req) |
750 try: |
751 req.send_error(exc_info, status=500, env=env, data=data) |
global Chrome = <class 'trac.web.chrome.Chrome'>, env = <Environment '/home/spapadim/trac/bitq'>, ).add_jquery_ui undefined, req = <RequestWithSession "GET '/wiki/Android/OCR'"> |
/usr/lib/python2.7/dist-packages/trac/web/chrome.py in add_jquery_ui(self=<Component trac.web.chrome.Chrome>, req=<RequestWithSession "GET '/wiki/Android/OCR'">) |
1375 """Add a reference to the jQuery UI script and link the stylesheet.""" |
1376 add_script(req, self.jquery_ui_location |
=> 1377 or 'common/js/jquery-ui.js') |
1378 add_stylesheet(req, self.jquery_ui_theme_location |
1379 or 'common/css/jquery-ui/jquery-ui.css') |
/usr/lib/python2.7/dist-packages/trac/web/chrome.py in add_script(req=<RequestWithSession "GET '/wiki/Android/OCR'">, filename='common/js/jquery-ui.js', mimetype='text/javascript', charset='utf-8', ie_if=None) |
164 `/chrome/` path. |
165 """ |
=> 166 scriptset = req.chrome.setdefault('scriptset', set()) |
167 if filename in scriptset: |
168 return False # Already added that script |
scriptset undefined, req = <RequestWithSession "GET '/wiki/Android/OCR'">, req.chrome = {'ctxtnav': [], 'htdocs_location': '/trac/chrome/common/', 'icon': {'abs_src': u'/favicon.ico', 'mimetype': 'image/x-icon', 'src': u'/favicon.ico'}, 'links': {'help': [{'class': None, 'href': '/trac/wiki/TracGuide', 'title': None, 'type': None}], 'icon': [{'class': None, 'href': u'/favicon.ico', 'title': None, 'type': 'image/x-icon'}], 'search': [{'class': None, 'href': '/trac/search', 'title': None, 'type': None}], 'start': [{'class': None, 'href': '/trac/wiki', 'title': None, 'type': None}], 'stylesheet': [{'class': None, 'href': '/trac/chrome/common/css/trac.css', 'title': None, 'type': 'text/css'}]}, 'linkset': set(['help:/trac/wiki/TracGuide', u'icon:/favicon.ico', 'search:/trac/search', 'start:/trac/wiki', 'stylesheet:/trac/chrome/common/css/trac.css']), 'logo': {'alt': u'bitquill', 'height': None, 'link': u'', 'src': u'/pix/bitquill.png', 'src_abs': u'/pix/bitquill.png', 'width': None}, 'metas': [], 'notices': [], 'script_data': {}, 'scripts': [{'charset': 'utf-8', 'href': '/trac/chrome/common/js/jquery.js', 'prefix': None, 'suffix': None, 'type': 'text/javascript'}, {'charset': 'utf-8', 'href': '/trac/chrome/common/js/babel.js', 'prefix': None, 'suffix': None, 'type': 'text/javascript'}, {'charset': 'utf-8', 'href': '/trac/chrome/common/js/trac.js', 'prefix': None, 'suffix': None, 'type': 'text/javascript'}, {'charset': 'utf-8', 'href': '/trac/chrome/common/js/search.js', 'prefix': None, 'suffix': None, 'type': 'text/javascript'}], ...}, req.chrome.setdefault = <built-in method setdefault of dict object>, builtin set = <type 'set'> |
/usr/lib/python2.7/dist-packages/trac/web/api.py in __getattr__(self=<RequestWithSession "GET '/wiki/Android/OCR'">, name='chrome') |
490 callbacks dictionary.""" |
491 if name in self.callbacks: |
=> 492 value = self.callbacks[name](self) |
493 setattr(self, name, value) |
494 return value |
value undefined, self = <RequestWithSession "GET '/wiki/Android/OCR'">, self.callbacks = {'_inheaders': <unbound method Request._parse_headers>, 'arg_list': <unbound method Request._parse_arg_list>, 'args': <function <lambda>>, 'authname': <bound method RequestDispatcher.authenticate of <Component trac.web.main.RequestDispatcher>>, 'chrome': <bound method Chrome.prepare_request of <Component trac.web.chrome.Chrome>>, 'form_token': <bound method RequestDispatcher._get_form_token of <Component trac.web.main.RequestDispatcher>>, 'incookie': <unbound method Request._parse_cookies>, 'languages': <unbound method Request._parse_languages>, 'lc_time': <bound method RequestDispatcher._get_lc_time of <Component trac.web.main.RequestDispatcher>>, 'locale': <bound method RequestDispatcher._get_locale of <Component trac.web.main.RequestDispatcher>>, ...}, name = 'chrome' |
/usr/lib/python2.7/dist-packages/trac/web/chrome.py in prepare_request(self=<Component trac.web.chrome.Chrome>, req=<RequestWithSession "GET '/wiki/Android/OCR'">, handler=None) |
816 allitems = {} |
817 active = None |
=> 818 for contributor in self.navigation_contributors: |
819 try: |
820 for category, name, text in \ |
contributor undefined, self = <Component trac.web.chrome.Chrome>, self.navigation_contributors undefined |
/usr/lib/python2.7/dist-packages/trac/core.py in extensions(self=<ExtensionPoint INavigationContributor>, component=<Component trac.web.chrome.Chrome>) |
80 """ |
81 classes = ComponentMeta._registry.get(self.interface, ()) |
=> 82 components = [component.compmgr[cls] for cls in classes] |
83 return [c for c in components if c] |
84 |
components undefined, component = <Component trac.web.chrome.Chrome>, component.compmgr = <Environment '/home/spapadim/trac/bitq'>, cls = <class 'acct_mgr.web_ui.AccountModule'>, classes = [<class 'tracdownloads.core.DownloadsDownloads'>, <class 'trac.attachment.AttachmentModule'>, <class 'trac.wiki.web_ui.WikiModule'>, <class 'tractags.web_ui.TagRequestHandler'>, <class 'trac.web.auth.LoginModule'>, <class 'acct_mgr.register.RegistrationModule'>, <class 'acct_mgr.web_ui.AccountModule'>, <class 'acct_mgr.web_ui.LoginModule'>, <class 'trac.about.AboutModule'>, <class 'trac.admin.web_ui.AdminModule'>, <class 'trac.prefs.web_ui.PreferencesModule'>, <class 'trac.search.web_ui.SearchModule'>, <class 'trac.ticket.roadmap.RoadmapModule'>, <class 'trac.ticket.roadmap.MilestoneModule'>, <class 'trac.ticket.query.QueryModule'>, <class 'trac.ticket.report.ReportModule'>, <class 'trac.ticket.web_ui.TicketModule'>, <class 'trac.timeline.web_ui.TimelineModule'>, <class 'trac.versioncontrol.web_ui.browser.BrowserModule'>, <class 'trac.versioncontrol.web_ui.changeset.ChangesetModule'>, ...] |
/usr/lib/python2.7/dist-packages/trac/core.py in __getitem__(self=<Environment '/home/spapadim/trac/bitq'>, cls=<class 'acct_mgr.web_ui.AccountModule'>) |
210 raise TracError('Component "%s" not registered' % cls.__name__) |
211 try: |
=> 212 component = cls(self) |
213 except TypeError as e: |
214 raise TracError("Unable to instantiate component %r (%s)" % |
component = None, cls = <class 'acct_mgr.web_ui.AccountModule'>, self = <Environment '/home/spapadim/trac/bitq'> |
/usr/lib/python2.7/dist-packages/trac/core.py in __call__(cls=<class 'acct_mgr.web_ui.AccountModule'>, *args=(<Environment '/home/spapadim/trac/bitq'>,), **kwargs={}) |
142 self.compmgr = compmgr |
143 compmgr.component_activated(self) |
=> 144 self.__init__() |
145 # Only register the instance once it is fully initialized (#9418) |
146 compmgr.components[cls] = self |
self = <Component acct_mgr.web_ui.AccountModule>, self.__init__ = <bound method AccountModule.__init__ of <Component acct_mgr.web_ui.AccountModule>> |
/home/spapadim/.local/lib/python2.7/site-packages/acct_mgr/web_ui.py in __init__(self=<Component acct_mgr.web_ui.AccountModule>) |
71 self.acctmgr = AccountManager(self.env) |
72 self.store = ResetPwStore(self.env) |
=> 73 self._write_check(log=True) |
74 |
75 def _write_check(self, log=False): |
self = <Component acct_mgr.web_ui.AccountModule>, self._write_check = <bound method AccountModule._write_check of <Component acct_mgr.web_ui.AccountModule>>, log undefined, builtin True = True |
/home/spapadim/.local/lib/python2.7/site-packages/acct_mgr/web_ui.py in _write_check(self=<Component acct_mgr.web_ui.AccountModule>, log=True) |
74 |
75 def _write_check(self, log=False): |
=> 76 writable = self.acctmgr.get_all_supporting_stores('set_password') |
77 if not writable and log: |
78 self.log.warn("AccountModule is disabled because the password " |
writable undefined, self = <Component acct_mgr.web_ui.AccountModule>, self.acctmgr = <Component acct_mgr.api.AccountManager>, self.acctmgr.get_all_supporting_stores = <bound method AccountManager.get_all_supporting_stores of <Component acct_mgr.api.AccountManager>> |
/home/spapadim/.local/lib/python2.7/site-packages/acct_mgr/api.py in get_all_supporting_stores(self=<Component acct_mgr.api.AccountManager>, operation='set_password') |
322 """Returns a list of stores that implement the specified operation""" |
323 stores = [] |
=> 324 for store in self.password_store: |
325 if hasattr(store, operation): |
326 stores.append(store) |
store undefined, self = <Component acct_mgr.api.AccountManager>, self.password_store undefined |
/home/spapadim/.local/lib/python2.7/site-packages/acct_mgr/api.py in password_store(self=<Component acct_mgr.api.AccountManager>) |
294 # fall back on old "password_format" option |
295 fmt = self._password_format |
=> 296 for store in self.stores: |
297 config_key = getattr(store, 'config_key', None) |
298 if config_key is None: |
store undefined, self = <Component acct_mgr.api.AccountManager>, self.stores undefined |
/usr/lib/python2.7/dist-packages/trac/core.py in extensions(self=<ExtensionPoint IPasswordStore>, component=<Component acct_mgr.api.AccountManager>) |
80 """ |
81 classes = ComponentMeta._registry.get(self.interface, ()) |
=> 82 components = [component.compmgr[cls] for cls in classes] |
83 return [c for c in components if c] |
84 |
components undefined, component = <Component acct_mgr.api.AccountManager>, component.compmgr = <Environment '/home/spapadim/trac/bitq'>, cls = <class 'acct_mgr.svnserve.SvnServePasswordStore'>, classes = [<class 'acct_mgr.db.SessionStore'>, <class 'acct_mgr.web_ui.ResetPwStore'>, <class 'acct_mgr.htfile.HtPasswdStore'>, <class 'acct_mgr.htfile.HtDigestStore'>, <class 'acct_mgr.http.HttpAuthStore'>, <class 'acct_mgr.svnserve.SvnServePasswordStore'>] |
/usr/lib/python2.7/dist-packages/trac/core.py in __getitem__(self=<Environment '/home/spapadim/trac/bitq'>, cls=<class 'acct_mgr.svnserve.SvnServePasswordStore'>) |
210 raise TracError('Component "%s" not registered' % cls.__name__) |
211 try: |
=> 212 component = cls(self) |
213 except TypeError as e: |
214 raise TracError("Unable to instantiate component %r (%s)" % |
component = None, cls = <class 'acct_mgr.svnserve.SvnServePasswordStore'>, self = <Environment '/home/spapadim/trac/bitq'> |
/usr/lib/python2.7/dist-packages/trac/core.py in __call__(cls=<class 'acct_mgr.svnserve.SvnServePasswordStore'>, *args=(<Environment '/home/spapadim/trac/bitq'>,), **kwargs={}) |
142 self.compmgr = compmgr |
143 compmgr.component_activated(self) |
=> 144 self.__init__() |
145 # Only register the instance once it is fully initialized (#9418) |
146 compmgr.components[cls] = self |
self = <Component acct_mgr.svnserve.SvnServePasswordStore>, self.__init__ = <bound method SvnServePasswordStore.__init__ of <Component acct_mgr.svnserve.SvnServePasswordStore>> |
/home/spapadim/.local/lib/python2.7/site-packages/acct_mgr/svnserve.py in __init__(self=<Component acct_mgr.svnserve.SvnServePasswordStore>) |
30 |
31 def __init__(self): |
=> 32 repo_dir = RepositoryManager(self.env).repository_dir |
33 self._svnserve_conf = Configuration(os.path.join(os.path.join( |
34 repo_dir, 'conf'), 'svnserve.conf')) |
repo_dir undefined, global RepositoryManager = <class 'trac.versioncontrol.api.RepositoryManager'>, self = <Component acct_mgr.svnserve.SvnServePasswordStore>, self.env = <Environment '/home/spapadim/trac/bitq'>, ).repository_dir undefined |
<type 'exceptions.AttributeError'>: 'RepositoryManager' object has no attribute 'repository_dir'
args =
("'RepositoryManager' object has no attribute 'repository_dir'",)
message =
"'RepositoryManager' object has no attribute 'repository_dir'"