Skip to content

Asset conversion issue, AttributeError: 'NoneType' object has no attribute 'readable' #1557

@FabioLolix

Description

@FabioLolix

Hello, using the program build from the latest commit on Arch Linux I wasn't able to convert the assets from 3 steam editions

I had only Age2HD installed, after the first try I performed a file check from steam, then downloaded the other 2 games but didn't work

I'm missing something?

(1) ~/.steam/steam/steamapps/common/Age2HD
(2) ~/.steam/steam/steamapps/common/AoE2DE
(3) ~/.steam/steam/steamapps/common/AoEDE
$ openage convert --force --source-dir /home/fabio/.steam/steam/steamapps/common/Age2HD
INFO [py] Looking for compatible games to convert...
INFO [py] Compatible game edition detected:
INFO [py]  * Age of Empires 2: HD Edition
INFO [py] converting metadata
INFO [py] using cached wrapper: /tmp/HDEDITION_empires2_x1_p1.dat.pickle
INFO [py] Starting conversion...
INFO [py] Extracting Genie data...
INFO [py] Creating API-like objects...
INFO [py] Linking API-like objects...
INFO [py] Generating auxiliary objects...
INFO [py] Creating nyan objects...
INFO [py] Creating requests for media export...
INFO [py] Starting export...
INFO [py] Dumping info file...
INFO [py] Dumping data files...
INFO [py] Exporting media files...
INFO [py] -- Exporting graphics files...
INFO [py] -- Exporting terrain files...
INFO [py] -- Exporting sound files...
INFO [py] Dumping metadata files...
INFO [py] asset conversion complete; asset version: 7
Traceback (most recent call last):
  File "/usr/sbin/openage", line 20, in <module>
    main()
  File "/usr/lib/python3.11/site-packages/openage/__main__.py", line 171, in main
    return args.entrypoint(args, cli.error)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/openage/convert/main.py", line 263, in main
    convert_assets(outdir, args, srcdir)
  File "/usr/lib/python3.11/site-packages/openage/convert/main.py", line 129, in convert_assets
    with asset_locations_path.open("a") as file_obj:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/openage/util/fslike/path.py", line 133, in open
    return TextIOWrapper(handle)
           ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'readable'
$ openage convert
  Do you want to convert assets? [Y/n]
> y

Please select an Age of Empires installation directory.
Insert the index of one of the proposals, or any path:
(0) 
(1) ~/.steam/steam/steamapps/common/Age2HD
(2) ~/.steam/steam/steamapps/common/AoE2DE
(3) ~/.steam/steam/steamapps/common/AoEDE
> 2
converting from '/home/fabio/.local/share/Steam/steamapps/common/AoE2DE'
INFO [py] Looking for compatible games to convert...
INFO [py] Compatible game edition detected:
INFO [py]  * Age of Empires 2: Definitive Edition
INFO [py] converting metadata
INFO [py] Starting conversion...
INFO [py] Extracting Genie data...
INFO [py] Creating API-like objects...
INFO [py] Linking API-like objects...
INFO [py] Generating auxiliary objects...
INFO [py] Creating nyan objects...
WARN [py] Could not create upgrade from unit 1755 to 330
WARN [py] Could not create upgrade from unit 1755 to 207
WARN [py] Could not create upgrade from unit 68 to 1734
WARN [py] Could not create upgrade from unit 129 to 1734
WARN [py] Could not create upgrade from unit 130 to 1734
WARN [py] Could not create upgrade from unit 131 to 1734
INFO [py] Creating requests for media export...
INFO [py] Starting export...
INFO [py] Dumping info file...
INFO [py] Dumping data files...
INFO [py] Exporting media files...
INFO [py] -- Exporting graphics files...
INFO [py] Dumping metadata files...
INFO [py] asset conversion complete; asset version: 7
Traceback (most recent call last):
  File "/usr/sbin/openage", line 20, in <module>
    main()
  File "/usr/lib/python3.11/site-packages/openage/__main__.py", line 171, in main
    return args.entrypoint(args, cli.error)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/openage/convert/main.py", line 263, in main
    convert_assets(outdir, args, srcdir)
  File "/usr/lib/python3.11/site-packages/openage/convert/main.py", line 129, in convert_assets
    with asset_locations_path.open("a") as file_obj:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/openage/util/fslike/path.py", line 133, in open
    return TextIOWrapper(handle)
           ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'readable'

$ openage convert
  Do you want to convert assets? [Y/n]
> y

Please select an Age of Empires installation directory.
Insert the index of one of the proposals, or any path:
(0) 
(1) ~/.steam/steam/steamapps/common/Age2HD
(2) ~/.steam/steam/steamapps/common/AoE2DE
(3) ~/.steam/steam/steamapps/common/AoEDE
> 3
converting from '/home/fabio/.local/share/Steam/steamapps/common/AoEDE'
INFO [py] Looking for compatible games to convert...
INFO [py] Compatible game edition detected:
INFO [py]  * Age of Empires 1: Definitive Edition (Steam)
INFO [py] converting metadata
INFO [py] Starting conversion...
INFO [py] Extracting Genie data...
INFO [py] Creating API-like objects...
INFO [py] Linking API-like objects...
INFO [py] Generating auxiliary objects...
INFO [py] Creating nyan objects...
INFO [py] Creating requests for media export...
INFO [py] Starting export...
INFO [py] Dumping info file...
INFO [py] Dumping data files...
INFO [py] Exporting media files...
INFO [py] -- Exporting graphics files...
INFO [py] -- Exporting sound files...
INFO [py] Dumping metadata files...
INFO [py] asset conversion complete; asset version: 7
Traceback (most recent call last):
  File "/usr/sbin/openage", line 20, in <module>
    main()
  File "/usr/lib/python3.11/site-packages/openage/__main__.py", line 171, in main
    return args.entrypoint(args, cli.error)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/openage/convert/main.py", line 263, in main
    convert_assets(outdir, args, srcdir)
  File "/usr/lib/python3.11/site-packages/openage/convert/main.py", line 129, in convert_assets
    with asset_locations_path.open("a") as file_obj:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/openage/util/fslike/path.py", line 133, in open
    return TextIOWrapper(handle)
           ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'readable'

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: assetsInvolved with assets (images, sounds, ...)bugBehaving differently as it should behavelang: pythonDone in Python code

    Type

    No type

    Projects

    Status

    ✅ Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions