updated counter generating code

Этот коммит содержится в:
Sara-Jayne Terp 2020-12-13 14:54:20 +00:00
родитель 009617aefa
Коммит 1f29df442d
6 изменённых файлов: 697 добавлений и 3051 удалений

Двоичные данные
.DS_Store поставляемый

Двоичный файл не отображается.

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -203,11 +203,74 @@ class Counter:
return
def create_resource_file(self, index, rowtype, datadir):
oid = index
counterrows = self.idresource[self.idresource['Res'] == index]['ID'].to_list()
html = '''# {} counters: {}\n\n'''.format(rowtype, index)
html += '## by action\n\n'
omatrix = self.dfcounters[self.dfcounters['ID'].isin(counterrows)].groupby('Response')
for resp, clist in omatrix:
html += '\n### {}\n'.format(resp)
for c in clist.iterrows():
html += '* {}: {} (needs {})\n'.format(c[1]['ID'], c[1]['Title'],
c[1]['Resources needed'])
datafile = '{}/{}counters.md'.format(datadir, oid)
print('Writing {}'.format(datafile))
with open(datafile, 'w') as f:
f.write(html)
f.close()
return(oid, omatrix)
def write_resource_markdown(self, outfile = '../counter_resource_counts.md'):
coltype = 'Response'
rowtype = 'resource'
rowname = 'resource'
html = '''# AMITT {} courses of action
<table border="1">
<tr>
<td> </td>
'''.format(rowtype)
# Table heading row
colvals = self.dfcounters[coltype].value_counts().sort_index().index
for col in colvals:
html += '<td>{}</td>\n'.format(col)
html += '<td>TOTALS</td></tr><tr>\n'
# Data rows
datadir = '../counter_{}'.format(rowname)
if not os.path.exists(datadir):
os.makedirs(datadir)
for index in self.idresource['Res'].value_counts().sort_index().index:
(oid, omatrix) = self.create_resource_file(index, rowtype, datadir) #self
row = pd.DataFrame(omatrix.apply(len), index=colvals).fillna(' ')
html += '<td><a href="counter_{0}/{1}counters.md">{2}</a></td>\n'.format(
rowname, oid, index)
if len(row.columns) > 0:
for val in row[0].to_list():
html += '<td>{}</td>\n'.format(val)
html += '<td>{}</td></tr>\n<tr>\n'.format('')
html += '</tr>\n</table>\n'
with open(outfile, 'w') as f:
f.write(html)
print('updated {}'.format(outfile))
return
def main():
counter = Counter()
counter.write_tactics_markdown()
counter.write_metacounts_markdown()
counter.write_resource_markdown()
if __name__ == "__main__":

Просмотреть файл

@ -1,9 +1,9 @@
# AMITT resource courses of action
<table border="1">
<tr>
<td> </td>
<td>ALL</td>
<table border="1">
<tr>
<td> </td>
<td>ALL</td>
<td>D2 Deny</td>
<td>D3 Disrupt</td>
<td>D4 Degrade</td>
@ -11,7 +11,7 @@
<td>D6 Destroy</td>
<td>D7 Deter</td>
<td>TOTALS</td></tr><tr>
<td><a href="resource/DHScounters.md">DHS</a></td>
<td><a href="counter_resource/DHScounters.md">DHS</a></td>
<td> </td>
<td> </td>
<td> </td>
@ -21,7 +21,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/NGOcounters.md">NGO</a></td>
<td><a href="counter_resource/NGOcounters.md">NGO</a></td>
<td> </td>
<td> </td>
<td> </td>
@ -31,7 +31,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/activistscounters.md">activists</a></td>
<td><a href="counter_resource/activistscounters.md">activists</a></td>
<td> </td>
<td> </td>
<td>1.0</td>
@ -41,7 +41,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/adtechcounters.md">adtech</a></td>
<td><a href="counter_resource/adtechcounters.md">adtech</a></td>
<td> </td>
<td> </td>
<td>1.0</td>
@ -51,7 +51,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/civil_societycounters.md">civil_society</a></td>
<td><a href="counter_resource/civil_societycounters.md">civil_society</a></td>
<td> </td>
<td> </td>
<td>1.0</td>
@ -61,7 +61,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/community_groupscounters.md">community_groups</a></td>
<td><a href="counter_resource/community_groupscounters.md">community_groups</a></td>
<td> </td>
<td> </td>
<td> </td>
@ -71,7 +71,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/companiescounters.md">companies</a></td>
<td><a href="counter_resource/companiescounters.md">companies</a></td>
<td> </td>
<td> </td>
<td>1.0</td>
@ -81,7 +81,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/content_creatorscounters.md">content_creators</a></td>
<td><a href="counter_resource/content_creatorscounters.md">content_creators</a></td>
<td> </td>
<td> </td>
<td> </td>
@ -91,7 +91,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/data_scientistcounters.md">data_scientist</a></td>
<td><a href="counter_resource/data_scientistcounters.md">data_scientist</a></td>
<td> </td>
<td>2.0</td>
<td> </td>
@ -101,7 +101,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/datastreamscounters.md">datastreams</a></td>
<td><a href="counter_resource/datastreamscounters.md">datastreams</a></td>
<td> </td>
<td>1.0</td>
<td> </td>
@ -111,7 +111,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/developerscounters.md">developers</a></td>
<td><a href="counter_resource/developerscounters.md">developers</a></td>
<td> </td>
<td>1.0</td>
<td> </td>
@ -121,7 +121,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/educatorscounters.md">educators</a></td>
<td><a href="counter_resource/educatorscounters.md">educators</a></td>
<td> </td>
<td>6.0</td>
<td>3.0</td>
@ -131,7 +131,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/elvescounters.md">elves</a></td>
<td><a href="counter_resource/elvescounters.md">elves</a></td>
<td> </td>
<td> </td>
<td> </td>
@ -141,7 +141,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/factcheckerscounters.md">factcheckers</a></td>
<td><a href="counter_resource/factcheckerscounters.md">factcheckers</a></td>
<td> </td>
<td>2.0</td>
<td> </td>
@ -151,7 +151,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/fundingcounters.md">funding</a></td>
<td><a href="counter_resource/fundingcounters.md">funding</a></td>
<td> </td>
<td>1.0</td>
<td> </td>
@ -161,7 +161,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/gamesdesignerscounters.md">gamesdesigners</a></td>
<td><a href="counter_resource/gamesdesignerscounters.md">gamesdesigners</a></td>
<td> </td>
<td>1.0</td>
<td> </td>
@ -171,7 +171,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/governmentcounters.md">government</a></td>
<td><a href="counter_resource/governmentcounters.md">government</a></td>
<td> </td>
<td>1.0</td>
<td>5.0</td>
@ -181,7 +181,7 @@
<td>1.0</td>
<td></td></tr>
<tr>
<td><a href="resource/government:policymakerscounters.md">government:policymakers</a></td>
<td><a href="counter_resource/government:policymakerscounters.md">government:policymakers</a></td>
<td> </td>
<td>4.0</td>
<td>4.0</td>
@ -191,7 +191,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/influencerscounters.md">influencers</a></td>
<td><a href="counter_resource/influencerscounters.md">influencers</a></td>
<td> </td>
<td>2.0</td>
<td>1.0</td>
@ -201,7 +201,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/influencers:trusted_authoritycounters.md">influencers:trusted_authority</a></td>
<td><a href="counter_resource/influencers:trusted_authoritycounters.md">influencers:trusted_authority</a></td>
<td> </td>
<td> </td>
<td>1.0</td>
@ -211,7 +211,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/infoseccounters.md">infosec</a></td>
<td><a href="counter_resource/infoseccounters.md">infosec</a></td>
<td> </td>
<td>1.0</td>
<td>1.0</td>
@ -221,7 +221,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/librariescounters.md">libraries</a></td>
<td><a href="counter_resource/librariescounters.md">libraries</a></td>
<td> </td>
<td> </td>
<td> </td>
@ -231,7 +231,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/mediacounters.md">media</a></td>
<td><a href="counter_resource/mediacounters.md">media</a></td>
<td> </td>
<td>2.0</td>
<td>4.0</td>
@ -241,7 +241,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/militarycounters.md">military</a></td>
<td><a href="counter_resource/militarycounters.md">military</a></td>
<td> </td>
<td> </td>
<td>1.0</td>
@ -251,7 +251,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/moneycounters.md">money</a></td>
<td><a href="counter_resource/moneycounters.md">money</a></td>
<td> </td>
<td> </td>
<td>2.0</td>
@ -261,7 +261,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/platform_admincounters.md">platform_admin</a></td>
<td><a href="counter_resource/platform_admincounters.md">platform_admin</a></td>
<td> </td>
<td>6.0</td>
<td>3.0</td>
@ -271,7 +271,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/platform_admin:adtechcounters.md">platform_admin:adtech</a></td>
<td><a href="counter_resource/platform_admin:adtechcounters.md">platform_admin:adtech</a></td>
<td> </td>
<td>1.0</td>
<td> </td>
@ -281,7 +281,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/platform_admin:fundingsitescounters.md">platform_admin:fundingsites</a></td>
<td><a href="counter_resource/platform_admin:fundingsitescounters.md">platform_admin:fundingsites</a></td>
<td> </td>
<td>1.0</td>
<td> </td>
@ -291,7 +291,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/platform_admin:socialmediacounters.md">platform_admin:socialmedia</a></td>
<td><a href="counter_resource/platform_admin:socialmediacounters.md">platform_admin:socialmedia</a></td>
<td> </td>
<td>4.0</td>
<td> </td>
@ -301,7 +301,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/platform_algorithmscounters.md">platform_algorithms</a></td>
<td><a href="counter_resource/platform_algorithmscounters.md">platform_algorithms</a></td>
<td> </td>
<td>2.0</td>
<td>2.0</td>
@ -311,7 +311,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/platform_outreachcounters.md">platform_outreach</a></td>
<td><a href="counter_resource/platform_outreachcounters.md">platform_outreach</a></td>
<td> </td>
<td> </td>
<td> </td>
@ -321,7 +321,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/platformscounters.md">platforms</a></td>
<td><a href="counter_resource/platformscounters.md">platforms</a></td>
<td> </td>
<td> </td>
<td> </td>
@ -331,7 +331,7 @@
<td>1.0</td>
<td></td></tr>
<tr>
<td><a href="resource/publiccounters.md">public</a></td>
<td><a href="counter_resource/publiccounters.md">public</a></td>
<td> </td>
<td>1.0</td>
<td>2.0</td>
@ -341,7 +341,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/public:account_ownerscounters.md">public:account_owners</a></td>
<td><a href="counter_resource/public:account_ownerscounters.md">public:account_owners</a></td>
<td> </td>
<td> </td>
<td> </td>
@ -351,7 +351,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/religious_organisationscounters.md">religious_organisations</a></td>
<td><a href="counter_resource/religious_organisationscounters.md">religious_organisations</a></td>
<td> </td>
<td> </td>
<td> </td>
@ -361,7 +361,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/schoolscounters.md">schools</a></td>
<td><a href="counter_resource/schoolscounters.md">schools</a></td>
<td> </td>
<td> </td>
<td> </td>
@ -371,7 +371,7 @@
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/server_admincounters.md">server_admin</a></td>
<td><a href="counter_resource/server_admincounters.md">server_admin</a></td>
<td> </td>
<td>1.0</td>
<td> </td>

385
old_counter_resource_counts.md Обычный файл
Просмотреть файл

@ -0,0 +1,385 @@
# AMITT resource courses of action
<table border="1">
<tr>
<td> </td>
<td>ALL</td>
<td>D2 Deny</td>
<td>D3 Disrupt</td>
<td>D4 Degrade</td>
<td>D5 Deceive</td>
<td>D6 Destroy</td>
<td>D7 Deter</td>
<td>TOTALS</td></tr><tr>
<td><a href="resource/DHScounters.md">DHS</a></td>
<td> </td>
<td> </td>
<td> </td>
<td>1.0</td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/NGOcounters.md">NGO</a></td>
<td> </td>
<td> </td>
<td> </td>
<td>1.0</td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/activistscounters.md">activists</a></td>
<td> </td>
<td> </td>
<td>1.0</td>
<td>1.0</td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/adtechcounters.md">adtech</a></td>
<td> </td>
<td> </td>
<td>1.0</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/civil_societycounters.md">civil_society</a></td>
<td> </td>
<td> </td>
<td>1.0</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/community_groupscounters.md">community_groups</a></td>
<td> </td>
<td> </td>
<td> </td>
<td>1.0</td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/companiescounters.md">companies</a></td>
<td> </td>
<td> </td>
<td>1.0</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/content_creatorscounters.md">content_creators</a></td>
<td> </td>
<td> </td>
<td> </td>
<td>1.0</td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/data_scientistcounters.md">data_scientist</a></td>
<td> </td>
<td>2.0</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/datastreamscounters.md">datastreams</a></td>
<td> </td>
<td>1.0</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/developerscounters.md">developers</a></td>
<td> </td>
<td>1.0</td>
<td> </td>
<td> </td>
<td>1.0</td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/educatorscounters.md">educators</a></td>
<td> </td>
<td>6.0</td>
<td>3.0</td>
<td>2.0</td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/elvescounters.md">elves</a></td>
<td> </td>
<td> </td>
<td> </td>
<td>1.0</td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/factcheckerscounters.md">factcheckers</a></td>
<td> </td>
<td>2.0</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/fundingcounters.md">funding</a></td>
<td> </td>
<td>1.0</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/gamesdesignerscounters.md">gamesdesigners</a></td>
<td> </td>
<td>1.0</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/governmentcounters.md">government</a></td>
<td> </td>
<td>1.0</td>
<td>5.0</td>
<td> </td>
<td> </td>
<td> </td>
<td>1.0</td>
<td></td></tr>
<tr>
<td><a href="resource/government:policymakerscounters.md">government:policymakers</a></td>
<td> </td>
<td>4.0</td>
<td>4.0</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/influencerscounters.md">influencers</a></td>
<td> </td>
<td>2.0</td>
<td>1.0</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/influencers:trusted_authoritycounters.md">influencers:trusted_authority</a></td>
<td> </td>
<td> </td>
<td>1.0</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/infoseccounters.md">infosec</a></td>
<td> </td>
<td>1.0</td>
<td>1.0</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/librariescounters.md">libraries</a></td>
<td> </td>
<td> </td>
<td> </td>
<td>1.0</td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/mediacounters.md">media</a></td>
<td> </td>
<td>2.0</td>
<td>4.0</td>
<td>4.0</td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/militarycounters.md">military</a></td>
<td> </td>
<td> </td>
<td>1.0</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/moneycounters.md">money</a></td>
<td> </td>
<td> </td>
<td>2.0</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/platform_admincounters.md">platform_admin</a></td>
<td> </td>
<td>6.0</td>
<td>3.0</td>
<td>2.0</td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/platform_admin:adtechcounters.md">platform_admin:adtech</a></td>
<td> </td>
<td>1.0</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/platform_admin:fundingsitescounters.md">platform_admin:fundingsites</a></td>
<td> </td>
<td>1.0</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/platform_admin:socialmediacounters.md">platform_admin:socialmedia</a></td>
<td> </td>
<td>4.0</td>
<td> </td>
<td>1.0</td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/platform_algorithmscounters.md">platform_algorithms</a></td>
<td> </td>
<td>2.0</td>
<td>2.0</td>
<td>4.0</td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/platform_outreachcounters.md">platform_outreach</a></td>
<td> </td>
<td> </td>
<td> </td>
<td>1.0</td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/platformscounters.md">platforms</a></td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td>1.0</td>
<td></td></tr>
<tr>
<td><a href="resource/publiccounters.md">public</a></td>
<td> </td>
<td>1.0</td>
<td>2.0</td>
<td>1.0</td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/public:account_ownerscounters.md">public:account_owners</a></td>
<td> </td>
<td> </td>
<td> </td>
<td>1.0</td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/religious_organisationscounters.md">religious_organisations</a></td>
<td> </td>
<td> </td>
<td> </td>
<td>1.0</td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/schoolscounters.md">schools</a></td>
<td> </td>
<td> </td>
<td> </td>
<td>1.0</td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
<td><a href="resource/server_admincounters.md">server_admin</a></td>
<td> </td>
<td>1.0</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td></td></tr>
<tr>
</tr>
</table>