{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/temporally-coherent-gans-for-video-super","title":"Learning Temporal Coherence via Self-Supervision for GAN-based Video Generation","arxiv_id":"1811.09393","date":"2018-11-23","proceeding":null,"authors":["Mengyu Chu","You Xie","Jonas Mayer","Laura Leal-Taixé","Nils Thuerey"],"abstract":"Our work explores temporal self-supervision for GAN-based video generation tasks. While adversarial training successfully yields generative models for a variety of areas, temporal relationships in the generated data are much less explored. Natural temporal changes are crucial for sequential generation tasks, e.g. video super-resolution and unpaired video translation. For the former, state-of-the-art methods often favor simpler norm losses such as $L^2$ over adversarial training. However, their averaging nature easily leads to temporally smooth results with an undesirable lack of spatial detail. For unpaired video translation, existing approaches modify the generator networks to form spatio-temporal cycle consistencies. In contrast, we focus on improving learning objectives and propose a temporally self-supervised algorithm. For both tasks, we show that temporal adversarial learning is key to achieving temporally coherent solutions without sacrificing spatial detail. We also propose a novel Ping-Pong loss to improve the long-term temporal consistency. It effectively prevents recurrent networks from accumulating artifacts temporally without depressing detailed features. Additionally, we propose a first set of metrics to quantitatively evaluate the accuracy as well as the perceptual quality of the temporal evolution. A series of user studies confirm the rankings computed with these metrics. Code, data, models, and results are provided at https://github.com/thunil/TecoGAN. The project page https://ge.in.tum.de/publications/2019-tecogan-chu/ contains supplemental materials.","url_abs":"https://arxiv.org/abs/1811.09393v4","url_pdf":"https://arxiv.org/pdf/1811.09393v4.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"temporally-coherent-gans-for-video-super","repo_url":"https://github.com/thunil/TecoGAN","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"temporally-coherent-gans-for-video-super","repo_url":"https://github.com/DwightFoster/Pytorch-TecoGan","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"temporally-coherent-gans-for-video-super","repo_url":"https://github.com/Fuhui-Chen/TecoGAN","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"temporally-coherent-gans-for-video-super","repo_url":"https://github.com/GitHubXlong/TecoGAN","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"temporally-coherent-gans-for-video-super","repo_url":"https://github.com/HERMINDERSINGH1234/ML_Extra_Resolution_Increases","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"temporally-coherent-gans-for-video-super","repo_url":"https://github.com/JonathanLehner/TecoGan-downloader","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"temporally-coherent-gans-for-video-super","repo_url":"https://github.com/MLX15/TecoGAN","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"temporally-coherent-gans-for-video-super","repo_url":"https://github.com/adbobes/VideoSuperResolution","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"temporally-coherent-gans-for-video-super","repo_url":"https://github.com/sdxone/resolution","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"temporally-coherent-gans-for-video-super","repo_url":"https://github.com/tom-doerr/TecoGAN","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"temporally-coherent-gans-for-video-super","repo_url":"https://github.com/tom-doerr/TecoGAN-Docker","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"temporally-coherent-gans-for-video-super","repo_url":"https://github.com/vscoboy/AI-","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"temporally-coherent-gans-for-video-super","repo_url":"https://github.com/zhusiling/TecoGAN","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"image-super-resolution","task_name":"Image Super-Resolution"},{"task_slug":"motion-compensation","task_name":"Motion Compensation"},{"task_slug":"super-resolution","task_name":"Super-Resolution"},{"task_slug":"translation","task_name":"Translation"},{"task_slug":"video-generation","task_name":"Video Generation"},{"task_slug":"video-super-resolution","task_name":"Video Super-Resolution"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/video-super-resolution-on-msu-video-upscalers","task":"Video Super-Resolution","dataset":"MSU Video Upscalers: Quality Enhancement","model":"TecoGAN","rank_in_archive_order":42,"of":48,"metrics":{"PSNR":"26.60","SSIM":"0.933","VMAF":"61.20"},"uses_additional_data":false},{"leaderboard":"/sota/video-super-resolution-on-vid4-4x-upscaling","task":"Video Super-Resolution","dataset":"Vid4 - 4x upscaling","model":"TecoGAN⊖","rank_in_archive_order":26,"of":27,"metrics":{"PSNR":"25.89"},"uses_additional_data":false},{"leaderboard":"/sota/video-super-resolution-on-vid4-4x-upscaling","task":"Video Super-Resolution","dataset":"Vid4 - 4x upscaling","model":"TecoGAN","rank_in_archive_order":27,"of":27,"metrics":{"PSNR":"25.57"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1811.09393","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1811.09393"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/GitHubXlong/TecoGAN","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/sdxone/resolution","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/MLX15/TecoGAN","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/DwightFoster/Pytorch-TecoGan","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/tom-doerr/TecoGAN-Docker","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Fuhui-Chen/TecoGAN","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/tom-doerr/TecoGAN","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/thunil/TecoGAN","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/JonathanLehner/TecoGan-downloader","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/zhusiling/TecoGAN","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/vscoboy/AI-","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/adbobes/VideoSuperResolution","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/HERMINDERSINGH1234/ML_Extra_Resolution_Increases","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran_draft_wrong":2,"unverified":23},"by_repo_kind":{"official":{"samples":19,"ran":0,"repositories":1},"listed":{"samples":6,"ran":2,"repositories":3}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"2514cc4783c71a9e","entry":"folder_check","repo":"sdxone/resolution","repo_kind":"listed","path":"runGan.py","file_url":"https://github.com/sdxone/resolution/blob/HEAD/runGan.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2514cc4783c71a9e"}},{"code_sha256_prefix":"38b58f617f0d12eb","entry":"mycall","repo":"sdxone/resolution","repo_kind":"listed","path":"runGan.py","file_url":"https://github.com/sdxone/resolution/blob/HEAD/runGan.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"38b58f617f0d12eb"}},{"code_sha256_prefix":"b63ceffc84988277","entry":"TecoGAN","repo":"thunil/TecoGAN","repo_kind":"official","path":"lib/Teco.py","file_url":"https://github.com/thunil/TecoGAN/blob/HEAD/lib/Teco.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b63ceffc84988277"}},{"code_sha256_prefix":"3cdddb5eb30c9d4e","entry":"TecoGAN","repo":"Fuhui-Chen/TecoGAN","repo_kind":"listed","path":"Lib/Teco.py","file_url":"https://github.com/Fuhui-Chen/TecoGAN/blob/HEAD/Lib/Teco.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3cdddb5eb30c9d4e"}},{"code_sha256_prefix":"7046ec3be0229a9b","entry":"TecoGAN","repo":"zhusiling/TecoGAN","repo_kind":"listed","path":"lib/Teco.py","file_url":"https://github.com/zhusiling/TecoGAN/blob/HEAD/lib/Teco.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7046ec3be0229a9b"}},{"code_sha256_prefix":"32689cfcac75fba7","entry":"VGG19_slim","repo":"thunil/TecoGAN","repo_kind":"official","path":"lib/Teco.py","file_url":"https://github.com/thunil/TecoGAN/blob/HEAD/lib/Teco.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"32689cfcac75fba7"}},{"code_sha256_prefix":"e5bd7d84ecd3318d","entry":"bootstrap","repo":"thunil/TecoGAN","repo_kind":"official","path":"LPIPSmodels/util.py","file_url":"https://github.com/thunil/TecoGAN/blob/HEAD/LPIPSmodels/util.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e5bd7d84ecd3318d"}},{"code_sha256_prefix":"4288f8e325eb43a4","entry":"deprocess","repo":"thunil/TecoGAN","repo_kind":"official","path":"lib/ops.py","file_url":"https://github.com/thunil/TecoGAN/blob/HEAD/lib/ops.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4288f8e325eb43a4"}},{"code_sha256_prefix":"f9613204ac33adac","entry":"discriminator_F","repo":"thunil/TecoGAN","repo_kind":"official","path":"lib/Teco.py","file_url":"https://github.com/thunil/TecoGAN/blob/HEAD/lib/Teco.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"f9613204ac33adac"}},{"code_sha256_prefix":"b8657455e1ad6e8c","entry":"fnet","repo":"thunil/TecoGAN","repo_kind":"official","path":"lib/frvsr.py","file_url":"https://github.com/thunil/TecoGAN/blob/HEAD/lib/frvsr.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b8657455e1ad6e8c"}},{"code_sha256_prefix":"11bc1870e570c529","entry":"generator_F","repo":"thunil/TecoGAN","repo_kind":"official","path":"lib/frvsr.py","file_url":"https://github.com/thunil/TecoGAN/blob/HEAD/lib/frvsr.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"11bc1870e570c529"}},{"code_sha256_prefix":"f1f42c8d72e93bc7","entry":"inference_data_loader","repo":"thunil/TecoGAN","repo_kind":"official","path":"lib/dataloader.py","file_url":"https://github.com/thunil/TecoGAN/blob/HEAD/lib/dataloader.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"f1f42c8d72e93bc7"}},{"code_sha256_prefix":"18b708b43f329c07","entry":"listPNGinDir","repo":"thunil/TecoGAN","repo_kind":"official","path":"metrics.py","file_url":"https://github.com/thunil/TecoGAN/blob/HEAD/metrics.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"18b708b43f329c07"}},{"code_sha256_prefix":"e8e48aaabe4bfc7a","entry":"loadHR","repo":"thunil/TecoGAN","repo_kind":"official","path":"lib/dataloader.py","file_url":"https://github.com/thunil/TecoGAN/blob/HEAD/lib/dataloader.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e8e48aaabe4bfc7a"}},{"code_sha256_prefix":"92dd998a9c3eacfc","entry":"loadHR","repo":"zhusiling/TecoGAN","repo_kind":"listed","path":"lib/dataloader.py","file_url":"https://github.com/zhusiling/TecoGAN/blob/HEAD/lib/dataloader.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"92dd998a9c3eacfc"}},{"code_sha256_prefix":"cb5f6a4cb024caf8","entry":"loadHR_batch","repo":"thunil/TecoGAN","repo_kind":"official","path":"lib/dataloader.py","file_url":"https://github.com/thunil/TecoGAN/blob/HEAD/lib/dataloader.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"cb5f6a4cb024caf8"}},{"code_sha256_prefix":"ff20179ab53fa4dc","entry":"loadHR_batch","repo":"zhusiling/TecoGAN","repo_kind":"listed","path":"lib/dataloader.py","file_url":"https://github.com/zhusiling/TecoGAN/blob/HEAD/lib/dataloader.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ff20179ab53fa4dc"}},{"code_sha256_prefix":"7b296d580bba710b","entry":"preprocess","repo":"thunil/TecoGAN","repo_kind":"official","path":"lib/ops.py","file_url":"https://github.com/thunil/TecoGAN/blob/HEAD/lib/ops.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7b296d580bba710b"}},{"code_sha256_prefix":"36508e74f93db68d","entry":"preprocessLR","repo":"thunil/TecoGAN","repo_kind":"official","path":"lib/ops.py","file_url":"https://github.com/thunil/TecoGAN/blob/HEAD/lib/ops.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"36508e74f93db68d"}},{"code_sha256_prefix":"c3bb172480fc8386","entry":"psnr","repo":"thunil/TecoGAN","repo_kind":"official","path":"metrics.py","file_url":"https://github.com/thunil/TecoGAN/blob/HEAD/metrics.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c3bb172480fc8386"}},{"code_sha256_prefix":"63d90e9c640f8ddc","entry":"rand_flip","repo":"thunil/TecoGAN","repo_kind":"official","path":"LPIPSmodels/util.py","file_url":"https://github.com/thunil/TecoGAN/blob/HEAD/LPIPSmodels/util.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"63d90e9c640f8ddc"}},{"code_sha256_prefix":"276eacceee671652","entry":"read_text_file","repo":"thunil/TecoGAN","repo_kind":"official","path":"LPIPSmodels/util.py","file_url":"https://github.com/thunil/TecoGAN/blob/HEAD/LPIPSmodels/util.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"276eacceee671652"}},{"code_sha256_prefix":"3f3c7f753146a949","entry":"score_2afc_dataset","repo":"thunil/TecoGAN","repo_kind":"official","path":"LPIPSmodels/dist_model.py","file_url":"https://github.com/thunil/TecoGAN/blob/HEAD/LPIPSmodels/dist_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3f3c7f753146a949"}},{"code_sha256_prefix":"ff4f1d08f3459a4e","entry":"score_jnd_dataset","repo":"thunil/TecoGAN","repo_kind":"official","path":"LPIPSmodels/dist_model.py","file_url":"https://github.com/thunil/TecoGAN/blob/HEAD/LPIPSmodels/dist_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ff4f1d08f3459a4e"}},{"code_sha256_prefix":"1886de70aee9a73c","entry":"to_uint8","repo":"thunil/TecoGAN","repo_kind":"official","path":"metrics.py","file_url":"https://github.com/thunil/TecoGAN/blob/HEAD/metrics.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"1886de70aee9a73c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}