civrealm

View on PyPIReverse Dependencies (0)

0.1.2 civrealm-0.1.2-py3-none-any.whl

Wheel Details

Project: civrealm
Version: 0.1.2
Filename: civrealm-0.1.2-py3-none-any.whl
Download: [link]
Size: 384055
MD5: e00759eff5355050bf419b59a434c891
SHA256: 509ce05f118c5f1bee79bdadbfd8e326b9e0312924d0e3613cdf96e15a6cce18
Uploaded: 2024-01-26 12:59:46 +0000

dist-info

METADATA

Metadata-Version: 2.1
Name: civrealm
Version: 0.1.2
Summary: CivRealm is an interactive environment for AI agents for the open-source strategy game Freeciv with the Freeciv-web client.
Author-Email: Siyuan Qi <syqi[at]bigai.ai>, Shuo Chen <chenshuo[at]bigai.ai>, Yexin Li <liyexin[at]bigai.ai>, Xiangyu Kong <kongxiangyu[at]bigai.ai>, Pring Wong <huangping[at]bigai.ai>, Bangcheng Yang <yangbangcheng[at]bigai.ai>, Chris1869 <chris1869[at]github.com>, Junqi Wang <wangjunqi[at]bigai.ai>, Yifan Zhong <zhongyifan[at]bigai.ai>, Zhaowei Zhang <zhangzhaowei[at]bigai.ai>, Xiaoyuan Zhang <zhangxiaoyuan[at]bigai.ai>, Nian Liu <liunian[at]bigai.ai>
Project-Url: Homepage, https://github.com/bigai-ai/civrealm
Project-Url: Issues, https://github.com/bigai-ai/civrealm/issues
Project-Url: Documentation, https://bigai-ai.github.io/civrealm/
Project-Url: Source, https://github.com/bigai-ai/civrealm
License: GLP3.0
Keywords: civrealm,freeciv,ai,reinforcement-learning,openai-gym
Classifier: Development Status :: 5 - Production/Stable
Classifier: Programming Language :: Python :: 3
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Games/Entertainment :: Turn Based Strategy
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)
Requires-Python: >=3.8
Requires-Dist: importlib-resources
Requires-Dist: pyyaml (>=5.4.1)
Requires-Dist: overrides
Requires-Dist: wheel
Requires-Dist: docker
Requires-Dist: urllib3
Requires-Dist: BitVector
Requires-Dist: numpy
Requires-Dist: tornado (==6.3.2)
Requires-Dist: gymnasium (==0.29.1)
Requires-Dist: selenium (==4.9.1)
Requires-Dist: websocket-client
Requires-Dist: filelock (>=3.12.2)
Requires-Dist: matplotlib
Requires-Dist: ray (==2.6.3); python_version < "3.12"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-xdist; extra == "dev"
Provides-Extra: dev
Description-Content-Type: text/markdown
License-File: LICENSE
[Description omitted; length: 8310 characters]

WHEEL

Wheel-Version: 1.0
Generator: bdist_wheel (0.42.0)
Root-Is-Purelib: true
Tag: py3-none-any

RECORD

Path Digest Size
civrealm/__init__.py sha256=b9MXWgEi9w_P9OEtHMrSw9j3GKceFFF-mElvrNa65VE 1230
civrealm/game_ai_assistant.py sha256=LJGsg0HkeQAGeqKJyduckMQtU4-5CainZA2079jjFvc 3271
civrealm/parallel_tensor.py sha256=IaSxNRoUOOnYygJZ11HNCPBSEfJsXkgIAp6J-xUvK1w 1863
civrealm/random_game.py sha256=BkBArr1ALU3hAwrbdLata71MDNpJb-XmRH62tO9vZIQ 1939
civrealm/random_game_minitask.py sha256=Pvqsy2HD2lZCaKgRvvdeliPiAKjvPjhGibsEuqhHPRc 1829
civrealm/random_game_parallel.py sha256=07VpLL0on3FOIoSBJDxxMzu7zJtfNJhBECIK6PeqzhE 1515
civrealm/random_game_self_play.py sha256=9tcrha_wiut47uDhp_L4hA00b11SZVltnq3jr7quNG8 6133
civrealm/random_game_seq.py sha256=Iww_9ebmWSGhgiMc6uyAMBhVJNM0Lx62h_PC_xO2Wy0 1957
civrealm/agents/__init__.py sha256=Q82qzdRCJnc-_QijO8YnGHPET37zCxs6IdmwWCDMzRE 203
civrealm/agents/base_agent.py sha256=g4Unh6JAtYD3yK-ILaV9PK12XOBvOc9c4wsD3CQEUvY 2610
civrealm/agents/controller_agent.py sha256=7yCSa8Vil3XrzW0S6oyXwWjyn0W0rHmS5-OcHgaeFtQ 6861
civrealm/agents/no_op_agent.py sha256=BsT6TrcnxDk8Wku80uRhsvn0LVPkjhhTn8xIytmga2Q 912
civrealm/agents/random_agent.py sha256=NtvGI_O9554GL3EBH3MRg-SON3xyg20gszzkKtFNzXY 1870
civrealm/agents/random_language_agent.py sha256=MJd5pa7EAZXhsDEvHWNHTMI0Dl19yykAVibWQ3BXkj0 1788
civrealm/configs/__init__.py sha256=n__Oie8MX1E0WSbzaBJ21DpQ7Oz_e9MZ44WkA3gyuRc 4656
civrealm/configs/dataset_settings.yaml sha256=XWcCg02TEHlugkqKjrmF7Eu1mZ-f8u-X48XMkobBPno 261
civrealm/configs/default_settings.yaml sha256=FY10ZujZ_LlHeZh5B-m6FfpctyqA9TgEJ8MECmqO7iI 6030
civrealm/configs/docker-compose.yaml sha256=dTq0AJpb_VkbBpEEREnh-tHjNxPvTJLOVJoAGWXyrQU 849
civrealm/configs/llm_wrapper_settings.yaml sha256=py6_0JqDn28TzO1pBPh5EzTbw8LLbICaOZA0kBNJQIU 2123
civrealm/configs/logging_config.py sha256=nqhAybYCKiTLoLjAxCqCORwrVk6ttPYP8wUPkxQHfEA 1874
civrealm/envs/__init__.py sha256=Kf6OIyWuHy-obprSIyHzn8xORwHWZrt_vIFczuNo2CU 451
civrealm/envs/freeciv_a3c_env.py sha256=HE4yQ5z9osnUef-XMm8OC1rVBX9UR0ShWwBLaS8Rj7I 1634
civrealm/envs/freeciv_base_env.py sha256=fG5kROCq8sHKLmqQb-S73d8z0jKjp-ohQg9uYXEL_qc 10854
civrealm/envs/freeciv_llm_env.py sha256=kUQXhzygLjZAo-xEnZp8Vwto6ZlOMDp8-Zb-9rjOamg 1381
civrealm/envs/freeciv_minitask_env.py sha256=mXX565vAZXujuXVV0-vvGimPVcT2fRllm8UGitNwRqI 8971
civrealm/envs/freeciv_parallel_env.py sha256=sFFyhPcXP-GT0ta9aeJpwV-e-DFmIywjwsGtU4YNCVI 2358
civrealm/envs/freeciv_tensor_env.py sha256=ypcYkleBkZmErBD1_sR-m_frHW5JGMjzEM-HdXU23TM 2017
civrealm/envs/freeciv_tensor_minitask_env.py sha256=llNQs_XKtDjaLI1iKr_0k6p6nFHxn_y0bJlwpbqDMCI 2439
civrealm/envs/parallel_self_play_env.py sha256=utGslBm5AkU_VvbgFiJvpviKHx7qNhLnfRBR2lUh-FI 4978
civrealm/envs/parallel_tensor_env.py sha256=jwgc2bHuS_NUTeZN77sunDm8Vzk4L_AHsaIsvdPjWgo 4992
civrealm/envs/self_play_env.py sha256=l8bPLwiSM_ndET9us9t2lhybrC2t1j5P_10BUWYZiH8 7153
civrealm/envs/freeciv_wrapper/__init__.py sha256=FlZUzxwEOeXT3X0hhUDQb4BvldADNFuJINiC3ERQ2MA 734
civrealm/envs/freeciv_wrapper/action_wrapper.py sha256=bGfIxM7aDQIaF3PyAAqN1zs3RSNp57ou_z8WzATKxaY 14197
civrealm/envs/freeciv_wrapper/city_wrapper.py sha256=ieFoRmf0_rOFGbzyrNjt5g55G3fJY8cSrIKozEk1NDU 914
civrealm/envs/freeciv_wrapper/config.py sha256=Bqvdk7rzUPB_9lj1Lt-ONrrp01Tp6nFQlJICD65y25s 16189
civrealm/envs/freeciv_wrapper/core.py sha256=ANmZjg9FDygImjFdXt4bTz1GejYmqcy9vtE1uudedZw 3947
civrealm/envs/freeciv_wrapper/dipl_wrapper.py sha256=zbGElZk89n-TxgjXxHwhs7QttHxaC9AJW6GVMzN1Ay8 7650
civrealm/envs/freeciv_wrapper/embark_wrapper.py sha256=tfBZD1y43Qi4sSfm7PYtiYo1py4ygCuOQ_4OE_yhkx8 3539
civrealm/envs/freeciv_wrapper/info_wrapper.py sha256=Qco8rI0ZcQMn_Z1RBV6jcPYdlD93_dunn8SYH9V_w_s 825
civrealm/envs/freeciv_wrapper/llm_wrapper.py sha256=1CNuS61yhwH3aofiSBMoK8n94ZEo561Wai6Fr_8IcGs 14007
civrealm/envs/freeciv_wrapper/mask_wrapper.py sha256=09EEnD_-2mMv-ZZ_4UMKnw7H3ba93u-m6NEOrhnLoUA 5378
civrealm/envs/freeciv_wrapper/observation_wrapper.py sha256=h_qGpzrRaYEiZR4pQQwFJD5slQtewg274Cil5aFK7UI 11647
civrealm/envs/freeciv_wrapper/reward_wrapper.py sha256=MkM6UMeCm36zg5tOzrbEQjd2M12HpsTgFXqFGJEGcEU 2231
civrealm/envs/freeciv_wrapper/tech_wrapper.py sha256=ixhaDIz9JCBtHW0KegLk9oBTPDmbNy2GfrF7TwpxXGY 2058
civrealm/envs/freeciv_wrapper/tensor_base_wrapper.py sha256=9lk9qQR6ztJgST0xmC2LD5LOwq_ScYeFComDEOf9g4U 4383
civrealm/envs/freeciv_wrapper/tensor_wrapper.py sha256=WDEkyzNmlo92ooGZsnGuv99zAhtjDvpGlMzLSipTN9w 1102
civrealm/envs/freeciv_wrapper/utils.py sha256=Q80qSIM42mvuMHCqjy8Jz6aJAHG1RfkxDHBAWcgUu90 4048
civrealm/exception/__init__.py sha256=CH1N9xtdh_XMA5ACnE2ypq-38AnUszxjY79l-60t8pU 96
civrealm/exception/exceptions.py sha256=PHIzUozsKeugU1e3oG2Z1PazFSxCQBFK_BRMrpaPd90 104
civrealm/freeciv/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
civrealm/freeciv/build_server.py sha256=35SXecOqGrz03fPgY_u8Pc9aeeN9KC9ncNet14jK6Dg 6756
civrealm/freeciv/civ_controller.py sha256=p-F7-vN2tBfvpiQpW1ATzkmbDvvNbEp3iqCV-MYb0PA 46836
civrealm/freeciv/clean.py sha256=e7jZ6EkgGlwGp5z5QWAkesU63ggAltLbDUAthy72l0I 1654
civrealm/freeciv/init_server.py sha256=P63azc4FfDNCW0FC8KLe0JT-kJfMqMsm89Jttkb54Ns 1321
civrealm/freeciv/turn_manager.py sha256=ZZKfWKjzkXrUHn1uJ486PChEkzBaSZ4_YNfsbsIktCQ 7821
civrealm/freeciv/city/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
civrealm/freeciv/city/city_actions.py sha256=XRDqGnVTAOEOCgQSaPtLV3oPypPTvMnjPSxSmtLejus 18049
civrealm/freeciv/city/city_ctrl.py sha256=0gEH65HD1Av1FQXy-69PXPlv5r4gOQTE4XUu9mG1_14 11501
civrealm/freeciv/city/city_state.py sha256=8CdLmwLgsMMZY-PexGLOxDLCBQ7fP8zCEp-o0wwQJBc 15521
civrealm/freeciv/connectivity/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
civrealm/freeciv/connectivity/civ_connection.py sha256=vaRN0W2POEjcEVyL3RTUPU9NGnfnJ9l5sCsUweuBk30 9709
civrealm/freeciv/connectivity/client_state.py sha256=4Gf8gMXTa4yqyVgFFJqLlKIWV-6ibsRLhtazLI-RZwk 19006
civrealm/freeciv/connectivity/web_socket_client.py sha256=hmLBjrFu2_0MULGeczJatRZQUJ3T5UXK0vuAAoRJBXg 5305
civrealm/freeciv/game/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
civrealm/freeciv/game/game_ctrl.py sha256=-ece2IK_FwHGm75jVb-2HQJDiTNvowD3E2VZoVuuR74 8569
civrealm/freeciv/game/info_states.py sha256=AJ34lYlApvxWqnk15PgETZYCyxUlWrLeG4Kp6VY5AU8 2170
civrealm/freeciv/game/options_ctrl.py sha256=ftTtu4IZgPJ2ky5H4ApG5s-YxRhwkVKhYeIYF3XIER4 7431
civrealm/freeciv/game/ruleset.py sha256=N-PzR19IL2q7Zfev9MNY7Q67a9b0QswkIhge8xiIDnk 18294
civrealm/freeciv/game/user_auth.py sha256=GEfLfofGVo88VWgbRj7qbFGw9-9DZIYGj905gKjCA4g 17187
civrealm/freeciv/map/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
civrealm/freeciv/map/map_const.py sha256=RuEMk7AMo8bojOAo3QMA9HHhK1YZtrbeNB4xegR-Hfg 2192
civrealm/freeciv/map/map_ctrl.py sha256=SfzatNwxEO4FHza-tdHKSDamRKsegkTetCa-1iSTQJ0 16650
civrealm/freeciv/map/map_state.py sha256=IhvqX2RQKYlvcuxCEb9hsIjL3GQGSP-bXiFd5HX0nak 7903
civrealm/freeciv/map/tile.py sha256=UGd3IIMfcDPkrHeeEobacFrTegpeyF3lRVY4mYov_Rk 1902
civrealm/freeciv/misc/freeciv_wiki.py sha256=QRBfZY6JNcUCS3S6frn6RHqCpVBKTer_x_q_sunO2Yw 367064
civrealm/freeciv/misc/modified_server_code/publite2.py sha256=V-AGBXuF2qV-SmT7Yf5B4XYvyLEUk8xoDWEs1MHVQog 9000
civrealm/freeciv/players/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
civrealm/freeciv/players/diplomacy_actions.py sha256=ncV11KLYOgr4pgT2M0fIkJGiXKkimiRBVW9cbGGrVNU 29761
civrealm/freeciv/players/diplomacy_state_ctrl.py sha256=jMNYePsopi3LGz-C0RQzSNmxHiD0dLqRM97fysCgh5o 15988
civrealm/freeciv/players/government.py sha256=0ZZwLdsnrsCaYzkJmwDH3qNuS-N_QH2t7OtssX27NgY 6078
civrealm/freeciv/players/player_actions.py sha256=xj_75OaVgp1SYsWH3S_rHidZyAQPSa-OmJ0b_RWbn3Y 5484
civrealm/freeciv/players/player_const.py sha256=HSPezHJ3VRb-HoE6vyOpV1woMsBXNFTkcMflU7DSGsI 1793
civrealm/freeciv/players/player_ctrl.py sha256=iu6ckHprI1Ke6JuwxB8XzQNqwJuEhFXNMNAhGj94yik 13112
civrealm/freeciv/players/player_helpers.py sha256=reVWTOjMA9xpXoqY8iSLegZT01vOK3O3B1CVrUBAt2c 1317
civrealm/freeciv/players/player_state.py sha256=AfN1h-KTzfc4XBhBDDENl9uV85mJmPx5eQHEqBu4FRw 11044
civrealm/freeciv/tech/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
civrealm/freeciv/tech/req_info.py sha256=-GspUtW3_4x2OQTxQZtcTKxofs1fMjUj0lsfM5PoqOA 6046
civrealm/freeciv/tech/reqtree.py sha256=m8elxwhW6YN_EG83PQkUs-JoMh_Ot9hOcIN-cHNTH0I 13530
civrealm/freeciv/tech/tech_actions.py sha256=eA-_HfhgfAoOyFfIZ-H6-PEOqPWS0_n4WGkOCBJasy4 2804
civrealm/freeciv/tech/tech_const.py sha256=WiiGEcv8_ZpiaPwMkWPdgRCYr0GhRG83r7Psmjhn4LY 1839
civrealm/freeciv/tech/tech_ctrl.py sha256=yBoZAKwnswf23_nhnIG8CzWU23hKbihcO0LHR56yzRY 3196
civrealm/freeciv/tech/tech_helpers.py sha256=51InR7Fl9Z88a6PbaRHycb9aaDoBORu1L9M0gZZXFRs 3095
civrealm/freeciv/tech/tech_state.py sha256=PYwcI6X6UujXU_Jy_-BjmdHLWqYS31Y5Fzcd02RhRU4 6740
civrealm/freeciv/units/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
civrealm/freeciv/units/action_dialog.py sha256=Mb_trEq-PLiryaduHSdNkc0SONxmk-cu3nuMAzbnBhE 2703
civrealm/freeciv/units/spacerace.py sha256=ngDpPHcGk6RssLaLDIPZtI5zHmpuH85Bj6dYF2t7Yuk 3439
civrealm/freeciv/units/unit_actions.py sha256=m6ogeRMLQNhV-dznoBBzclded4zqT1fAlSM2Eh1H5WQ 87128
civrealm/freeciv/units/unit_ctrl.py sha256=8etYJmDiAJefwHHI27jnHWgaPcJppeOQqwUR3j643Hc 30898
civrealm/freeciv/units/unit_helpers.py sha256=BC3XcTiO0j4K-dVXSZ2rljMS-eNsgcITgGL_pNzf1bw 1286
civrealm/freeciv/units/unit_state.py sha256=hk3QkHdXmT4BvwNMM0kzetU1_G-tHccCkI5OGqKqTA4 6474
civrealm/freeciv/utils/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
civrealm/freeciv/utils/banlist.py sha256=uSmvaBgCLJyZOBRCtyt_cQThDkMVjFOTx09Ce0lCSyc 1570
civrealm/freeciv/utils/base_action.py sha256=cF1cqK4ga6muBZ0gNjQTf2LeM8foMHbbhHupQ0vVwmE 10039
civrealm/freeciv/utils/base_controller.py sha256=zcJkWa3k1fgL1zDYqLWqCgCRA9pLbearAR6aNnuFBMk 3656
civrealm/freeciv/utils/base_state.py sha256=pxktp4mkcKdsx6k0ZQDDwx7ItPHWJRvc3xGifEEO0oU 5653
civrealm/freeciv/utils/civ_monitor.py sha256=2HMoFzPjlfLGUQnSrU_AsuxtkL-lKBqkIv_iNMiJUs8 7757
civrealm/freeciv/utils/create_packhand.py sha256=W4SbOTN1rTLxdRBz2VmYpdROO7tvteUtqrgFYX_IPI4 1835
civrealm/freeciv/utils/data_handler.py sha256=yh_2jXZM6zE52fR2vvfUMNRE1av8Mufi-z6EcAgQtnw 5413
civrealm/freeciv/utils/eval_tags.py sha256=J8qj4Yi3Z9A7aDpObNLH4WchnhbZnZ0Uq72ydeDagpg 1486
civrealm/freeciv/utils/fc_events.py sha256=2yBQVmwFwqyWWfdgSPahasaBpVaO8VO0fmytvMR1Db8 12390
civrealm/freeciv/utils/fc_types.py sha256=6tKZxPvgSzGLwZhcd4kioHODRZ8by8D_4N9e4i1LOJ4 18430
civrealm/freeciv/utils/freeciv_logging.py sha256=svqRH6hOYZwnz7drNrEgJDeKjhwF6MKUusiRgVfZriI 2992
civrealm/freeciv/utils/language_agent_utility.py sha256=7eIyrDdI5Lm5PTUMS81DNQkFHj31SPnebnJVHE_YE9U 2615
civrealm/freeciv/utils/parallel_helper.py sha256=1E0rHo-K_Vyw3XcyhBldnyAycUbbt9ioyVdDJ4uAgtg 437
civrealm/freeciv/utils/port_list.py sha256=Qou9_Nid_dq4u6inJ0sS89-M7Zy7iXB7u6oBl4RQrvw 1476
civrealm/freeciv/utils/port_utils.py sha256=F8l5ZB508RUUgG87CWN92nLYicDK8pthoIuU-n0qUps 11010
civrealm/freeciv/utils/test_utils.py sha256=H0gmli67P2bIlW6joJXXXKxGDeh0YhM-tEOTvqifBpQ 1189
civrealm/freeciv/utils/unit_improvement_const.py sha256=n35hv7xcscq9DNJOW89aKfJAij5f9fRmIVcXHt-liOw 3510
civrealm/freeciv/utils/utility.py sha256=Je8u9Lt9Z64oUQFPr3-0PSvpKx4etW2hP78z2HyPmLI 3181
civrealm/runners/__init__.py sha256=mi1rNW5iNx2FyrkB9UBZmTIvSbYpYM7ILi2e2OLB0Ao 135
civrealm/runners/a3c_runner.py sha256=zD8V0vQzP6IoX8qfdIF6HLmnm8TqU0sDzHTizJRkS7I 6955
civrealm/runners/parallel_runner.py sha256=VtkJquO7Gz8v8fF2GjtukLiHhHQ3bSbpQ4rS0ImGBK0 4399
civrealm/runners/parallel_tensor_runner.py sha256=Pp5EgB3deK5mSrFR6xBflLON0CNgE0kjj7qo1TRayMU 1495
civrealm-0.1.2.dist-info/LICENSE sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM 35147
civrealm-0.1.2.dist-info/METADATA sha256=faTTOnK8UpnbImCVuBsexkTNmSBLfA6AJEJ87hqzcIk 10341
civrealm-0.1.2.dist-info/WHEEL sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM 92
civrealm-0.1.2.dist-info/entry_points.txt sha256=DDKinIQw07S3169L85k-OT9vsv3cj2z1T3CuIy1Yd50 506
civrealm-0.1.2.dist-info/top_level.txt sha256=y-Xvjl_MP1v0ZUknFoIrCy5qonCfzKn-ETadXECJe94 9
civrealm-0.1.2.dist-info/RECORD

top_level.txt

civrealm

entry_points.txt

build_freeciv_web_service = civrealm.freeciv.build_server:build_freeciv_web_service
download_freeciv_web_image = civrealm.freeciv.build_server:download_freeciv_web_image
start_freeciv_web_service = civrealm.freeciv.build_server:start_freeciv_web_service
stop_freeciv_web_service = civrealm.freeciv.build_server:stop_freeciv_web_service
test_civrealm = civrealm.random_game:main
update_javascript_for_clean_screenshot = civrealm.freeciv.build_server:update_javascript_for_clean_screenshot