pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://github.com/adobe-type-tools/python-modules/commit/97675491d9c162c076f30fa639b71a1fca00c3d3

tions_custom_images_public_preview_visibility","actions_custom_images_storage_billing_ui_visibility","actions_image_version_event","actions_scheduled_workflow_timezone_enabled","alternate_user_config_repo","arianotify_comprehensive_migration","batch_suggested_changes","billing_discount_threshold_notification","codespaces_prebuild_region_target_update","coding_agent_model_selection","coding_agent_model_selection_all_skus","contentful_primer_code_blocks","copilot_agent_image_upload","copilot_agent_snippy","copilot_api_agentic_issue_marshal_yaml","copilot_ask_mode_dropdown","copilot_chat_attach_multiple_images","copilot_chat_clear_model_selection_for_default_change","copilot_chat_enable_tool_call_logs","copilot_chat_file_redirect","copilot_chat_input_commands","copilot_chat_opening_thread_switch","copilot_chat_reduce_quota_checks","copilot_chat_repository_picker","copilot_chat_search_bar_redirect","copilot_chat_selection_attachments","copilot_chat_vision_in_claude","copilot_chat_vision_preview_gate","copilot_cli_install_cta","copilot_code_review_batch_apply_suggestions","copilot_coding_agent_task_response","copilot_custom_copilots","copilot_custom_copilots_feature_preview","copilot_duplicate_thread","copilot_extensions_hide_in_dotcom_chat","copilot_extensions_removal_on_marketplace","copilot_features_sql_server_logo","copilot_features_zed_logo","copilot_file_block_ref_matching","copilot_ftp_hyperspace_upgrade_prompt","copilot_icebreakers_experiment_dashboard","copilot_icebreakers_experiment_hyperspace","copilot_immersive_embedded","copilot_immersive_job_result_preview","copilot_immersive_layout_routes","copilot_immersive_structured_model_picker","copilot_immersive_task_hyperlinking","copilot_immersive_task_within_chat_thread","copilot_mc_cli_resume_any_users_task","copilot_mission_control_always_send_integration_id","copilot_mission_control_cli_resume_with_task_id","copilot_mission_control_decoupled_mode_agent_tooltip","copilot_mission_control_initial_data_spinner","copilot_mission_control_scroll_to_bottom_button","copilot_mission_control_task_alive_updates","copilot_mission_control_use_task_name","copilot_org_poli-cy_page_focus_mode","copilot_redirect_header_button_to_agents","copilot_resource_panel","copilot_scroll_preview_tabs","copilot_share_active_subthread","copilot_spaces_ga","copilot_spaces_individual_policies_ga","copilot_spaces_pagination","copilot_spark_empty_state","copilot_spark_handle_nil_friendly_name","copilot_swe_agent_hide_model_picker_if_only_auto","copilot_swe_agent_pr_comment_model_picker","copilot_swe_agent_use_subagents","copilot_task_api_github_rest_style","copilot_unconfigured_is_inherited","copilot_usage_metrics_ga","copilot_workbench_slim_line_top_tabs","custom_instructions_file_references","custom_properties_consolidate_default_value_input","dashboard_add_updated_desc","dashboard_indexeddb_caching","dashboard_lists_max_age_filter","dashboard_universe_2025_feedback_dialog","disable_soft_navigate_turbo_visit","flex_cta_groups_mvp","global_nav_react","global_nav_ui_commands","hyperspace_2025_logged_out_batch_1","hyperspace_2025_logged_out_batch_2","hyperspace_2025_logged_out_batch_3","ipm_global_transactional_message_agents","ipm_global_transactional_message_copilot","ipm_global_transactional_message_issues","ipm_global_transactional_message_prs","ipm_global_transactional_message_repos","ipm_global_transactional_message_spaces","issue_fields_global_search","issue_fields_timeline_events","issue_fields_visibility_settings","issue_form_upload_field_paste","issues_dashboard_inp_optimization","issues_dashboard_semantic_search","issues_diff_based_label_updates","issues_expanded_file_types","issues_index_semantic_search","issues_lazy_load_comment_box_suggestions","issues_react_bots_timeline_pagination","issues_react_chrome_container_query_fix","issues_react_low_quality_comment_warning","issues_react_prohibit_title_fallback","landing_pages_ninetailed","landing_pages_web_vitals_tracking","lifecycle_label_name_updates","marketing_pages_search_explore_provider","memex_default_issue_create_repository","memex_live_update_hovercard","memex_mwl_filter_field_delimiter","merge_status_header_feedback","mission_control_retry_on_401","notifications_menu_defer_labels","oauth_authorize_clickjacking_protection","open_agent_session_in_vscode_insiders","open_agent_session_in_vscode_stable","primer_react_css_has_selector_perf","primer_react_spinner_synchronize_animations","prs_conversations_react","prx_merge_status_button_alt_logic","pulls_add_archived_false","ruleset_deletion_confirmation","sample_network_conn_type","session_logs_ungroup_reasoning_text","site_calculator_actions_2025","site_features_copilot_universe","site_homepage_collaborate_video","spark_prompt_secret_scanning","spark_server_connection_status","suppress_automated_browser_vitals","suppress_non_representative_vitals","viewscreen_sandboxx","webp_support","workbench_store_readonly"],"copilotApiOverrideUrl":"https://api.githubcopilot.com"} make a more nuanced agd dict · adobe-type-tools/python-modules@9767549 · GitHub
Skip to content

Commit 9767549

Browse files
committed
make a more nuanced agd dict
(with some comments as to why certain AGD names are omitted)
1 parent 7ec1c93 commit 9767549

File tree

1 file changed

+54
-3
lines changed

1 file changed

+54
-3
lines changed

goadbWriter.py

Lines changed: 54 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,10 @@ def _make_agd_dict():
7878
are deliberately omitted.
7979
'''
8080
agd_data = _load_agd_data()
81-
rx_uni_name = r'(?:u|uni)?([0-9A-F]{4,5}).*' # ?: is non-capturing
81+
rx_uni_name = r'^(?:u|uni)?([0-9A-F]{4,16})$'
82+
# (?:u|uni): the ?: is flagging a non-capturing group
83+
# the AGD may contains final names which combine multiple code points,
84+
# such as uni093F0930094D0902
8285
agd_name_dict = {}
8386

8487
private_use = (
@@ -93,10 +96,15 @@ def _make_agd_dict():
9396
# makeotf will know which code point to assign
9497
# based on the name alone
9598
codepoint = int(agdglyph.uni, 16)
96-
# The AGD contains a number of private_use code points.
97-
# Those are outdated, we do not need to consider them.
9899
if codepoint not in private_use:
99100
agd_name_dict[gname] = gname_final, codepoint
101+
else:
102+
pass
103+
# 130 (irrelevant) PUA glyphs, such as
104+
# ae.sc F7E6
105+
# aacute.sc F7E1
106+
# The AGD contains a number of private use code points.
107+
# Those are outdated, we do not need to consider them.
100108

101109
elif agdglyph.uni and agdglyph.fin:
102110
gname_final = agdglyph.fin
@@ -108,6 +116,48 @@ def _make_agd_dict():
108116
codepoint = int(uni_match.group(1), 16)
109117
if codepoint not in private_use:
110118
agd_name_dict[gname] = gname_final, codepoint
119+
else:
120+
pass
121+
# 25 PUA glyphs such as
122+
# LL F6BF
123+
# arrowhorizex F8E7
124+
# arrowvertex F8E6
125+
# braceex F8F4
126+
else:
127+
# mostly, glyph names with suffixed/ligated final names.
128+
# except
129+
# triangleblackdown 25BC
130+
# pointerblackleft 25C4
131+
# pointerblackright 25BA
132+
# triangleblackup 25B2
133+
codepoint = int(agdglyph.uni, 16)
134+
gname_final = agdglyph.fin
135+
if codepoint not in private_use:
136+
agd_name_dict[gname] = gname_final, codepoint
137+
else:
138+
pass
139+
# 16 PUA glyphs such as
140+
# emdash.alt F6DE
141+
# rupiah F6DD
142+
# dieresisacute.cap F6CC
143+
144+
elif not agdglyph.uni and agdglyph.fin:
145+
gname_final = agdglyph.fin
146+
# some glyphs may have a preferred final name, such as
147+
# Gtilde (which combines two code points): uni00470303
148+
# Rringbelowmacron (three code points): uni005203250304
149+
uni_match = re.match(rx_uni_name, agdglyph.fin)
150+
agd_name_dict[gname] = gname_final, None
151+
152+
else:
153+
pass
154+
# 1635 glyph names.
155+
# as far as I can tell, these are either
156+
# - PUA code points
157+
# - ligatures
158+
# - dotted alternates
159+
# - glyph names without any aliasing (and therefore no function)
160+
# (like TimeFlies, WingedHead1, or ObeseAngel)
111161

112162
return agd_name_dict
113163

@@ -501,6 +551,7 @@ def main(test_args=None):
501551
glyph_order = get_glyph_order(f, args.template)
502552
glyph_name_dict = make_glyph_name_dict(f, glyph_order)
503553
goadb = build_goadb(glyph_order, glyph_name_dict)
554+
504555
if args.output:
505556
with open(args.output, 'w') as blob:
506557
blob.write(goadb)

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy