Skip to content

Commit 9e33485

Browse files
committed
Refactor Figure method attachments
1 parent c36b650 commit 9e33485

2 files changed

Lines changed: 71 additions & 69 deletions

File tree

pygmt/figure.py

Lines changed: 69 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,40 @@
99
from typing import Literal, overload
1010

1111
from pygmt._typing import PathLike
12+
from pygmt.src.basemap import basemap as _basemap
13+
from pygmt.src.choropleth import choropleth as _choropleth
14+
from pygmt.src.coast import coast as _coast
15+
from pygmt.src.colorbar import colorbar as _colorbar
16+
from pygmt.src.contour import contour as _contour
17+
from pygmt.src.directional_rose import directional_rose as _directional_rose
18+
from pygmt.src.grdcontour import grdcontour as _grdcontour
19+
from pygmt.src.grdimage import grdimage as _grdimage
20+
from pygmt.src.grdview import grdview as _grdview
21+
from pygmt.src.histogram import histogram as _histogram
22+
from pygmt.src.hlines import hlines as _hlines
23+
from pygmt.src.image import image as _image
24+
from pygmt.src.inset import inset as _inset
25+
from pygmt.src.legend import legend as _legend
26+
from pygmt.src.logo import logo as _logo
27+
from pygmt.src.magnetic_rose import magnetic_rose as _magnetic_rose
28+
from pygmt.src.meca import meca as _meca
29+
from pygmt.src.paragraph import paragraph as _paragraph
30+
from pygmt.src.plot import plot as _plot
31+
from pygmt.src.plot3d import plot3d as _plot3d
32+
from pygmt.src.psconvert import psconvert as _psconvert
33+
from pygmt.src.rose import rose as _rose
34+
from pygmt.src.scalebar import scalebar as _scalebar
35+
from pygmt.src.shift_origin import shift_origin as _shift_origin
36+
from pygmt.src.solar import solar as _solar
37+
from pygmt.src.subplot import set_panel as _set_panel
38+
from pygmt.src.subplot import subplot as _subplot
39+
from pygmt.src.ternary import ternary as _ternary
40+
from pygmt.src.text import text_ as _text
41+
from pygmt.src.tilemap import tilemap as _tilemap
42+
from pygmt.src.timestamp import timestamp as _timestamp
43+
from pygmt.src.velo import velo as _velo
44+
from pygmt.src.vlines import vlines as _vlines
45+
from pygmt.src.wiggle import wiggle as _wiggle
1246

1347
try:
1448
import IPython
@@ -408,42 +442,41 @@ def _repr_html_(self) -> str:
408442
html = '<img src="data:image/png;base64,{image}" width="{width}px">'
409443
return html.format(image=base64_png.decode("utf-8"), width=500)
410444

411-
from pygmt.src import ( # type: ignore[misc] # noqa: PLC0415
412-
basemap,
413-
choropleth,
414-
coast,
415-
colorbar,
416-
contour,
417-
directional_rose,
418-
grdcontour,
419-
grdimage,
420-
grdview,
421-
histogram,
422-
hlines,
423-
image,
424-
inset,
425-
legend,
426-
logo,
427-
magnetic_rose,
428-
meca,
429-
paragraph,
430-
plot,
431-
plot3d,
432-
psconvert,
433-
rose,
434-
scalebar,
435-
set_panel,
436-
shift_origin,
437-
solar,
438-
subplot,
439-
ternary,
440-
text,
441-
tilemap,
442-
timestamp,
443-
velo,
444-
vlines,
445-
wiggle,
446-
)
445+
# Attach plotting functions implemented in pygmt.src as Figure methods.
446+
basemap = _basemap
447+
choropleth = _choropleth
448+
coast = _coast
449+
colorbar = _colorbar
450+
contour = _contour
451+
directional_rose = _directional_rose
452+
grdcontour = _grdcontour
453+
grdimage = _grdimage
454+
grdview = _grdview
455+
histogram = _histogram
456+
hlines = _hlines
457+
image = _image
458+
inset = _inset
459+
legend = _legend
460+
logo = _logo
461+
magnetic_rose = _magnetic_rose
462+
meca = _meca
463+
paragraph = _paragraph
464+
plot = _plot
465+
plot3d = _plot3d
466+
psconvert = _psconvert
467+
rose = _rose
468+
scalebar = _scalebar
469+
set_panel = _set_panel
470+
shift_origin = _shift_origin
471+
solar = _solar
472+
subplot = _subplot
473+
ternary = _ternary
474+
text = _text
475+
tilemap = _tilemap
476+
timestamp = _timestamp
477+
velo = _velo
478+
vlines = _vlines
479+
wiggle = _wiggle
447480

448481

449482
def set_display(method: Literal["external", "notebook", "none", None] = None) -> None:

pygmt/src/__init__.py

Lines changed: 2 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -2,71 +2,40 @@
22
Source code for PyGMT methods.
33
"""
44

5-
from pygmt.src.basemap import basemap
5+
# Re-export standalone functions that can be used directly.
6+
# Figure plotting methods are attached in pygmt.figure and are not exported here.
67
from pygmt.src.binstats import binstats
78
from pygmt.src.blockm import blockmean, blockmedian, blockmode
8-
from pygmt.src.choropleth import choropleth
9-
from pygmt.src.coast import coast
10-
from pygmt.src.colorbar import colorbar
119
from pygmt.src.config import config
12-
from pygmt.src.contour import contour
1310
from pygmt.src.dimfilter import dimfilter
14-
from pygmt.src.directional_rose import directional_rose
1511
from pygmt.src.filter1d import filter1d
1612
from pygmt.src.grd2cpt import grd2cpt
1713
from pygmt.src.grd2xyz import grd2xyz
1814
from pygmt.src.grdclip import grdclip
19-
from pygmt.src.grdcontour import grdcontour
2015
from pygmt.src.grdcut import grdcut
2116
from pygmt.src.grdfill import grdfill
2217
from pygmt.src.grdfilter import grdfilter
2318
from pygmt.src.grdgradient import grdgradient
2419
from pygmt.src.grdhisteq import grdhisteq
25-
from pygmt.src.grdimage import grdimage
2620
from pygmt.src.grdinfo import grdinfo
2721
from pygmt.src.grdlandmask import grdlandmask
2822
from pygmt.src.grdmask import grdmask
2923
from pygmt.src.grdpaste import grdpaste
3024
from pygmt.src.grdproject import grdproject
3125
from pygmt.src.grdsample import grdsample
3226
from pygmt.src.grdtrack import grdtrack
33-
from pygmt.src.grdview import grdview
3427
from pygmt.src.grdvolume import grdvolume
35-
from pygmt.src.histogram import histogram
36-
from pygmt.src.hlines import hlines
37-
from pygmt.src.image import image
3828
from pygmt.src.info import info
39-
from pygmt.src.inset import inset
40-
from pygmt.src.legend import legend
41-
from pygmt.src.logo import logo
42-
from pygmt.src.magnetic_rose import magnetic_rose
4329
from pygmt.src.makecpt import makecpt
44-
from pygmt.src.meca import meca
4530
from pygmt.src.nearneighbor import nearneighbor
46-
from pygmt.src.paragraph import paragraph
47-
from pygmt.src.plot import plot
48-
from pygmt.src.plot3d import plot3d
4931
from pygmt.src.project import project
50-
from pygmt.src.psconvert import psconvert
51-
from pygmt.src.rose import rose
52-
from pygmt.src.scalebar import scalebar
5332
from pygmt.src.select import select
54-
from pygmt.src.shift_origin import shift_origin
55-
from pygmt.src.solar import solar
5633
from pygmt.src.sph2grd import sph2grd
5734
from pygmt.src.sphdistance import sphdistance
5835
from pygmt.src.sphinterpolate import sphinterpolate
59-
from pygmt.src.subplot import set_panel, subplot
6036
from pygmt.src.surface import surface
61-
from pygmt.src.ternary import ternary
62-
from pygmt.src.text import text_ as text # "text" is an argument within "text_"
63-
from pygmt.src.tilemap import tilemap
64-
from pygmt.src.timestamp import timestamp
6537
from pygmt.src.triangulate import triangulate
66-
from pygmt.src.velo import velo
67-
from pygmt.src.vlines import vlines
6838
from pygmt.src.which import which
69-
from pygmt.src.wiggle import wiggle
7039
from pygmt.src.x2sys_cross import x2sys_cross
7140
from pygmt.src.x2sys_init import x2sys_init
7241
from pygmt.src.xyz2grd import xyz2grd

0 commit comments

Comments
 (0)