{"action":"created","comment":{"url":"https://api.github.com/repos/reinout/z3c.dependencychecker/pulls/comments/36610560","id":36610560,"diff_hunk":"@@ -84,6 +84,57 @@\n ['\\\"]        # Single or double quote.\n \"\"\", re.VERBOSE)\n \n+FTI_BEHAVIOR_PATTERN = re.compile(r\"\"\"\n+\\s           # Whitespace.\n+<element     #","path":"src/z3c/dependencychecker/dependencychecker.py","position":6,"original_position":6,"commit_id":"02e3d266d6c57de6f362fa2da0d19c5d3ade8e3f","original_commit_id":"02e3d266d6c57de6f362fa2da0d19c5d3ade8e3f","user":{"login":"jone","id":7469,"avatar_url":"https://avatars.githubusercontent.com/u/7469?v=3","gravatar_id":"","url":"https://api.github.com/users/jone","html_url":"https://github.com/jone","followers_url":"https://api.github.com/users/jone/followers","following_url":"https://api.github.com/users/jone/following{/other_user}","gists_url":"https://api.github.com/users/jone/gists{/gist_id}","starred_url":"https://api.github.com/users/jone/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jone/subscriptions","organizations_url":"https://api.github.com/users/jone/orgs","repos_url":"https://api.github.com/users/jone/repos","events_url":"https://api.github.com/users/jone/events{/privacy}","received_events_url":"https://api.github.com/users/jone/received_events","type":"User","site_admin":false},"body":"I think the problem is that we don't know in which context the `<element>` tag appears.\r\nRegex is not really useful for parsing context-aware things such as XML, at least when the context gets relevant as it is the case here (seeh the [Chomsky hierarchy](https://en.wikipedia.org/wiki/Chomsky_hierarchy)).\r\n\r\nMaybe it would be better to use a XML parser, such as lxml or minidom, what do you think?","created_at":"2015-08-10T08:28:20Z","updated_at":"2015-08-10T08:28:20Z","html_url":"https://github.com/reinout/z3c.dependencychecker/pull/26#discussion_r36610560","pull_request_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/pulls/26","_links":{"self":{"href":"https://api.github.com/repos/reinout/z3c.dependencychecker/pulls/comments/36610560"},"html":{"href":"https://github.com/reinout/z3c.dependencychecker/pull/26#discussion_r36610560"},"pull_request":{"href":"https://api.github.com/repos/reinout/z3c.dependencychecker/pulls/26"}}},"pull_request":{"url":"https://api.github.com/repos/reinout/z3c.dependencychecker/pulls/26","id":41969215,"html_url":"https://github.com/reinout/z3c.dependencychecker/pull/26","diff_url":"https://github.com/reinout/z3c.dependencychecker/pull/26.diff","patch_url":"https://github.com/reinout/z3c.dependencychecker/pull/26.patch","issue_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/issues/26","number":26,"state":"open","locked":false,"title":"Add FTI support","user":{"login":"gforcada","id":1155680,"avatar_url":"https://avatars.githubusercontent.com/u/1155680?v=3","gravatar_id":"","url":"https://api.github.com/users/gforcada","html_url":"https://github.com/gforcada","followers_url":"https://api.github.com/users/gforcada/followers","following_url":"https://api.github.com/users/gforcada/following{/other_user}","gists_url":"https://api.github.com/users/gforcada/gists{/gist_id}","starred_url":"https://api.github.com/users/gforcada/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gforcada/subscriptions","organizations_url":"https://api.github.com/users/gforcada/orgs","repos_url":"https://api.github.com/users/gforcada/repos","events_url":"https://api.github.com/users/gforcada/events{/privacy}","received_events_url":"https://api.github.com/users/gforcada/received_events","type":"User","site_admin":false},"body":"Plone add-ons may install new content types,\r\nwhich are defined in XML files where some dependencies maybe hidden.","created_at":"2015-08-09T11:41:51Z","updated_at":"2015-08-10T08:28:20Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a2810a6181b4d26391b1f548da154e5adda85cbd","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/pulls/26/commits","review_comments_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/pulls/26/comments","review_comment_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/pulls/comments{/number}","comments_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/issues/26/comments","statuses_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/statuses/02e3d266d6c57de6f362fa2da0d19c5d3ade8e3f","head":{"label":"gforcada:plone-fti","ref":"plone-fti","sha":"02e3d266d6c57de6f362fa2da0d19c5d3ade8e3f","user":{"login":"gforcada","id":1155680,"avatar_url":"https://avatars.githubusercontent.com/u/1155680?v=3","gravatar_id":"","url":"https://api.github.com/users/gforcada","html_url":"https://github.com/gforcada","followers_url":"https://api.github.com/users/gforcada/followers","following_url":"https://api.github.com/users/gforcada/following{/other_user}","gists_url":"https://api.github.com/users/gforcada/gists{/gist_id}","starred_url":"https://api.github.com/users/gforcada/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gforcada/subscriptions","organizations_url":"https://api.github.com/users/gforcada/orgs","repos_url":"https://api.github.com/users/gforcada/repos","events_url":"https://api.github.com/users/gforcada/events{/privacy}","received_events_url":"https://api.github.com/users/gforcada/received_events","type":"User","site_admin":false},"repo":{"id":26981555,"name":"z3c.dependencychecker","full_name":"gforcada/z3c.dependencychecker","owner":{"login":"gforcada","id":1155680,"avatar_url":"https://avatars.githubusercontent.com/u/1155680?v=3","gravatar_id":"","url":"https://api.github.com/users/gforcada","html_url":"https://github.com/gforcada","followers_url":"https://api.github.com/users/gforcada/followers","following_url":"https://api.github.com/users/gforcada/following{/other_user}","gists_url":"https://api.github.com/users/gforcada/gists{/gist_id}","starred_url":"https://api.github.com/users/gforcada/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gforcada/subscriptions","organizations_url":"https://api.github.com/users/gforcada/orgs","repos_url":"https://api.github.com/users/gforcada/repos","events_url":"https://api.github.com/users/gforcada/events{/privacy}","received_events_url":"https://api.github.com/users/gforcada/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/gforcada/z3c.dependencychecker","description":"Python dependency checker (with support for zope zcml files and doctests)","fork":true,"url":"https://api.github.com/repos/gforcada/z3c.dependencychecker","forks_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/forks","keys_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/teams","hooks_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/hooks","issue_events_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/issues/events{/number}","events_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/events","assignees_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/assignees{/user}","branches_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/branches{/branch}","tags_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/tags","blobs_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/git/refs{/sha}","trees_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/statuses/{sha}","languages_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/languages","stargazers_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/stargazers","contributors_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/contributors","subscribers_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/subscribers","subscription_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/subscription","commits_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/commits{/sha}","git_commits_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/git/commits{/sha}","comments_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/comments{/number}","issue_comment_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/issues/comments{/number}","contents_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/contents/{+path}","compare_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/merges","archive_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/downloads","issues_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/issues{/number}","pulls_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/pulls{/number}","milestones_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/milestones{/number}","notifications_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/labels{/name}","releases_url":"https://api.github.com/repos/gforcada/z3c.dependencychecker/releases{/id}","created_at":"2014-11-21T23:00:02Z","updated_at":"2014-11-21T23:00:02Z","pushed_at":"2015-08-09T11:54:59Z","git_url":"git://github.com/gforcada/z3c.dependencychecker.git","ssh_url":"git@github.com:gforcada/z3c.dependencychecker.git","clone_url":"https://github.com/gforcada/z3c.dependencychecker.git","svn_url":"https://github.com/gforcada/z3c.dependencychecker","homepage":"http://pypi.python.org/pypi/z3c.dependencychecker","size":178,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"reinout:master","ref":"master","sha":"cfbfdc180957c32b20328c608b6719e04d422a57","user":{"login":"reinout","id":121433,"avatar_url":"https://avatars.githubusercontent.com/u/121433?v=3","gravatar_id":"","url":"https://api.github.com/users/reinout","html_url":"https://github.com/reinout","followers_url":"https://api.github.com/users/reinout/followers","following_url":"https://api.github.com/users/reinout/following{/other_user}","gists_url":"https://api.github.com/users/reinout/gists{/gist_id}","starred_url":"https://api.github.com/users/reinout/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/reinout/subscriptions","organizations_url":"https://api.github.com/users/reinout/orgs","repos_url":"https://api.github.com/users/reinout/repos","events_url":"https://api.github.com/users/reinout/events{/privacy}","received_events_url":"https://api.github.com/users/reinout/received_events","type":"User","site_admin":false},"repo":{"id":4830226,"name":"z3c.dependencychecker","full_name":"reinout/z3c.dependencychecker","owner":{"login":"reinout","id":121433,"avatar_url":"https://avatars.githubusercontent.com/u/121433?v=3","gravatar_id":"","url":"https://api.github.com/users/reinout","html_url":"https://github.com/reinout","followers_url":"https://api.github.com/users/reinout/followers","following_url":"https://api.github.com/users/reinout/following{/other_user}","gists_url":"https://api.github.com/users/reinout/gists{/gist_id}","starred_url":"https://api.github.com/users/reinout/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/reinout/subscriptions","organizations_url":"https://api.github.com/users/reinout/orgs","repos_url":"https://api.github.com/users/reinout/repos","events_url":"https://api.github.com/users/reinout/events{/privacy}","received_events_url":"https://api.github.com/users/reinout/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/reinout/z3c.dependencychecker","description":"Python dependency checker (with support for zope zcml files and doctests)","fork":false,"url":"https://api.github.com/repos/reinout/z3c.dependencychecker","forks_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/forks","keys_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/keys{/key_id}","collaborators_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/teams","hooks_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/hooks","issue_events_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/issues/events{/number}","events_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/events","assignees_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/assignees{/user}","branches_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/branches{/branch}","tags_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/tags","blobs_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/git/refs{/sha}","trees_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/git/trees{/sha}","statuses_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/statuses/{sha}","languages_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/languages","stargazers_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/stargazers","contributors_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/contributors","subscribers_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/subscribers","subscription_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/subscription","commits_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/commits{/sha}","git_commits_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/git/commits{/sha}","comments_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/comments{/number}","issue_comment_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/issues/comments{/number}","contents_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/contents/{+path}","compare_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/compare/{base}...{head}","merges_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/merges","archive_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/downloads","issues_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/issues{/number}","pulls_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/pulls{/number}","milestones_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/milestones{/number}","notifications_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/labels{/name}","releases_url":"https://api.github.com/repos/reinout/z3c.dependencychecker/releases{/id}","created_at":"2012-06-29T08:26:35Z","updated_at":"2014-11-21T22:59:57Z","pushed_at":"2015-08-10T07:45:15Z","git_url":"git://github.com/reinout/z3c.dependencychecker.git","ssh_url":"git@github.com:reinout/z3c.dependencychecker.git","clone_url":"https://github.com/reinout/z3c.dependencychecker.git","svn_url":"https://github.com/reinout/z3c.dependencychecker","homepage":"http://pypi.python.org/pypi/z3c.dependencychecker","size":268,"stargazers_count":5,"watchers_count":5,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":5,"mirror_url":null,"open_issues_count":7,"forks":5,"open_issues":7,"watchers":5,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/reinout/z3c.dependencychecker/pulls/26"},"html":{"href":"https://github.com/reinout/z3c.dependencychecker/pull/26"},"issue":{"href":"https://api.github.com/repos/reinout/z3c.dependencychecker/issues/26"},"comments":{"href":"https://api.github.com/repos/reinout/z3c.dependencychecker/issues/26/comments"},"review_comments":{"href":"https://api.github.com/repos/reinout/z3c.dependencychecker/pulls/26/comments"},"review_comment":{"href":"https://api.github.com/repos/reinout/z3c.dependencychecker/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/reinout/z3c.dependencychecker/pulls/26/commits"},"statuses":{"href":"https://api.github.com/repos/reinout/z3c.dependencychecker/statuses/02e3d266d6c57de6f362fa2da0d19c5d3ade8e3f"}}}}