Skip to content

Where to expose arcade.camera API? #2557

Closed
@cdeil

Description

@cdeil

Currently the links from the tutorial and programming guide to the camera API docs are broken.

https://api.arcade.academy/en/latest/tutorials/platform_tutorial/step_07.html

Image

https://api.arcade.academy/en/latest/programming_guide/camera.html#key-objects

Image

The reason is that currently the place of exposure in the API docs is arcade.Camera2D at the top level arcade namespace:

https://api.arcade.academy/en/latest/api_docs/api/camera_2d.html#arcade.Camera2D

and other classes & functions are exposed in deeply nested submodules like arcade.camera.orthographic.OrthographicProjector:

https://api.arcade.academy/en/latest/api_docs/api/advanced_cameras.html#arcade.camera.orthographic.OrthographicProjector

For example here you mention in a changelog to users that objects would be exposed at arcade.camera.Camera2D or arcade.camera.OrthographicProjector:

https://github.com/pythonarcade/arcade/blob/development/CHANGELOG.md#camera

Actually all those classes are exposed in the arcade.camera namespace already, it's only the docs which are confusing / links broken.

Do you want to keep arcade.Camera2D or remove it here and only expose it as arcade.camera.Camera2D?

from .camera import Camera2D

For all the others I see somehow you generate doc/api_docs/api/advanced_cameras.rst with entries like this:

.. autoclass:: arcade.camera.data_types.OrthographicProjectionData
   :members:

.. autoclass:: arcade.camera.orthographic.OrthographicProjector
   :members:

Would it be OK to change and expose those API docs in the arcade.camera namespace?
I would be +1 on this since deeply nested imports are harder to explore and remember.

Related: #2239

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions