diff --git a/xclim/core/checks.py b/xclim/core/checks.py
index fb7eef91..d478910c 100644
--- a/xclim/core/checks.py
+++ b/xclim/core/checks.py
@@ -62,7 +62,7 @@ def assert_daily(var):
     if np.timedelta64(dt.timedelta(days=1)) != (t1 - t0).data:
         raise ValueError("time series is not daily.")
 
-    # Check that the series has the same time step throughout
+    # Check that the series does not go backward in time
     if not var.time.to_pandas().is_monotonic_increasing:
         raise ValueError("time index is not monotonically increasing.")
 
@@ -167,41 +167,75 @@ class MissingBase:
 
     @staticmethod
     def split_freq(freq):
+        if freq is None:
+            return "", None
+
         if "-" in freq:
-            pfreq, anchor = freq.split("-")
-        else:
-            pfreq, anchor = freq, None
+            return freq.split("-")
 
-        return pfreq, anchor
+        return freq, None
 
     @staticmethod
     def is_null(da, freq, **indexer):
-        # Compute the number of days in the time series during each period at the given frequency.
+        """Return a boolean array indicating which values are null."""
         selected = generic.select_time(da, **indexer)
         if selected.time.size == 0:
             raise ValueError("No data for selected period.")
 
-        return selected.isnull().resample(time=freq)
+        null = selected.isnull()
+        if freq:
+            return null.resample(time=freq)
+
+        return null
 
     def prepare(self, da, freq, **indexer):
-        pfreq, anchor = self.split_freq(freq)
+        """Prepare arrays to be fed to the `is_missing` function.
+
+        Parameters
+        ----------
+        da : xr.DataArray
+          Input data.
+        freq : str
+          Resampling frequency defining the periods defined in
+          http://pandas.pydata.org/pandas-docs/stable/timeseries.html#resampling.
+        **indexer : {dim: indexer, }, optional
+          Time attribute and values over which to subset the array. For example, use season='DJF' to select winter
+          values, month=1 to select January, or month=[6,7,8] to select summer months. If not indexer is given,
+          all values are considered.
+
+        Returns
+        -------
+        xr.DataArray, xr.DataArray
+          Boolean array indicating which values are null, array of expected number of valid values.
+
+        Notes
+        -----
+        If `freq=None` and an indexer is given, then missing values during period at the start or end of array won't be
+        flagged.
+        """
         null = self.is_null(da, freq, **indexer)
 
+        pfreq, anchor = self.split_freq(freq)
+
         c = null.sum(dim="time")
 
         # Otherwise simply use the start and end dates to find the expected number of days.
         if pfreq.endswith("S"):
             start_time = c.indexes["time"]
             end_time = start_time.shift(1, freq=freq)
-        else:
+        elif pfreq:
             end_time = c.indexes["time"]
             start_time = end_time.shift(-1, freq=freq)
+        else:
+            i = da.time.to_index()
+            start_time = i[:1]
+            end_time = i[-1:]
 
         if indexer:
             # Create a full synthetic time series and compare the number of days with the original series.
             t0 = str(start_time[0].date())
             t1 = str(end_time[-1].date())
-            if isinstance(c.indexes["time"], xr.CFTimeIndex):
+            if isinstance(da.indexes["time"], xr.CFTimeIndex):
                 cal = da.time.encoding.get("calendar")
                 t = xr.cftime_range(t0, t1, freq="D", calendar=cal)
             else:
@@ -209,11 +243,17 @@ class MissingBase:
 
             sda = xr.DataArray(data=np.ones(len(t)), coords={"time": t}, dims=("time",))
             st = generic.select_time(sda, **indexer)
-            count = st.notnull().resample(time=freq).sum(dim="time")
+            if freq:
+                count = st.notnull().resample(time=freq).sum(dim="time")
+            else:
+                count = st.notnull().sum(dim="time")
 
         else:
             n = (end_time - start_time).days
-            count = xr.DataArray(n.values, coords={"time": c.time}, dims="time")
+            if freq:
+                count = xr.DataArray(n.values, coords={"time": c.time}, dims="time")
+            else:
+                count = xr.DataArray(n.values[0] + 1)
 
         return null, count
 
diff --git a/xclim/core/indicator.py b/xclim/core/indicator.py
index 15ebb5de..97000280 100644
--- a/xclim/core/indicator.py
+++ b/xclim/core/indicator.py
@@ -308,12 +308,11 @@ class Indicator:
         from functools import reduce
 
         freq = kwds.get("freq")
-        if freq is not None:
-            # We flag any period with missing data
-            miss = (checks.missing_any(da, freq) for da in args)
-        else:
-            # There is no resampling, we flag where one of the input is missing
-            miss = (da.isnull() for da in args)
+        indexer = kwds.get("indexer") or {}
+
+        # We flag any period with missing data
+        miss = (checks.missing_any(da, freq, **indexer) for da in args)
+
         return reduce(np.logical_or, miss)
 
     def validate(self, da):
diff --git a/xclim/indicators/atmos/_conversion.py b/xclim/indicators/atmos/_conversion.py
index b61ef4fc..94b1ed85 100644
--- a/xclim/indicators/atmos/_conversion.py
+++ b/xclim/indicators/atmos/_conversion.py
@@ -2,7 +2,6 @@ from xclim import indices
 from xclim.core.indicator import Indicator
 from xclim.core.utils import wrapped_partial
 
-
 __all__ = [
     "tg",
     "wind_speed_from_vector",
@@ -19,6 +18,11 @@ class Converter(Indicator):
     def validate(self, da):
         """Input validation."""
 
+    def missing(self, *args, **kwds):
+        """Return whether an output is considered missing or not."""
+        # Converters should propagate null values themselves.
+        return False
+
 
 tg = Converter(
     identifier="tg",

Support `freq=None` in missing_* functions
### Description
<!--Describe what you were trying to get done.
Tell us what happened, what went wrong, and what you expected to happen.-->

This will simplify the Indicator class logic and facilitate switching the missing method.

diff --git a/tests/test_atmos.py b/tests/test_atmos.py
index 670e16ed..0cc0280d 100644
--- a/tests/test_atmos.py
+++ b/tests/test_atmos.py
@@ -10,16 +10,21 @@ K2C = 273.16
 
 
 def test_wind_speed_from_vectors():
-    uas = xr.DataArray(np.array([3, -3]), dims=["x"])
+    uas = xr.DataArray(np.array([3.0, -3.0]), dims=["x"])
     uas.attrs["units"] = "m s-1"
-    vas = xr.DataArray(np.array([4, -4]), dims=["x"])
+    vas = xr.DataArray(np.array([4.0, -4.0]), dims=["x"])
     vas.attrs["units"] = "m s-1"
-    exp_wind = xr.DataArray(np.array([5, 5]), dims=["x"])
+    exp_wind = xr.DataArray(np.array([5.0, 5.0]), dims=["x"])
     exp_wind.attrs["units"] = "m s-1"
 
     wind = atmos.wind_speed_from_vector(uas=uas, vas=vas)
     np.testing.assert_allclose(wind, exp_wind)
 
+    # missing values
+    uas[0] = np.nan
+    wind = atmos.wind_speed_from_vector(uas=uas, vas=vas)
+    np.testing.assert_array_equal(wind.isnull(), [True, False])
+
 
 def test_relative_humidity_dewpoint(tas_series, rh_series):
     np.testing.assert_allclose(
diff --git a/tests/test_checks.py b/tests/test_checks.py
index 3cae7161..4cad72ef 100644
--- a/tests/test_checks.py
+++ b/tests/test_checks.py
@@ -121,6 +121,25 @@ class TestMissingAnyFills:
         miss = checks.missing_any(ts, freq="YS", season="SON")
         np.testing.assert_equal(miss, [False])
 
+    def test_no_freq(self, tasmin_series):
+        ts = tasmin_series(np.zeros(360))
+
+        miss = checks.missing_any(ts, freq=None)
+        np.testing.assert_array_equal(miss, False)
+
+        t = list(range(31))
+        t.pop(5)
+        ts2 = ts.isel(time=t)
+        miss = checks.missing_any(ts2, freq=None)
+        np.testing.assert_array_equal(miss, True)
+
+        # With indexer
+        miss = checks.missing_any(ts, freq=None, month=[7])
+        np.testing.assert_array_equal(miss, False)
+
+        miss = checks.missing_any(ts2, freq=None, month=[7])
+        np.testing.assert_array_equal(miss, True)
+
     def test_hydro(self):
         fn = Path(TESTS_DATA, "Raven", "q_sim.nc")
         ds = xr.open_dataset(fn)
diff --git a/tests/test_indicators.py b/tests/test_indicators.py
index 9898ef5a..82a5bfcc 100644
--- a/tests/test_indicators.py
+++ b/tests/test_indicators.py
@@ -16,6 +16,7 @@ from xclim.core.formatting import update_history
 from xclim.core.indicator import Indicator
 from xclim.core.units import units
 from xclim.indices import tg_mean
+from xclim.indices.generic import select_time
 
 
 class UniIndTemp(Indicator):
@@ -45,6 +46,16 @@ class UniIndPr(Indicator):
         return da.resample(time=freq).mean(keep_attrs=True)
 
 
+class UniClim(Indicator):
+    identifier = "clim"
+    units = "K"
+
+    @staticmethod
+    def compute(da, **indexer):
+        select = select_time(da, **indexer)
+        return select.mean(dim="time", keep_attrs=True)
+
+
 def test_attrs(tas_series):
     import datetime as dt
 
@@ -69,6 +80,29 @@ def test_temp_unit_conversion(tas_series):
     np.testing.assert_array_almost_equal(txk, txc + 273.15)
 
 
+def test_missing(tas_series):
+    a = tas_series(np.ones(360, float))
+    ind = UniIndTemp()
+    clim = UniClim()
+
+    # Null value
+    a[5] = np.nan
+
+    out = ind(a, freq="MS")
+    assert out[0].isnull()
+
+    # With freq=None
+    out = clim(a)
+    assert out.isnull()
+
+    # With indexer
+    out = clim(a, month=[1])
+    assert not out.isnull()
+
+    out = clim(a, month=[7])
+    assert out.isnull()
+
+
 def test_json(pr_series):
     ind = UniIndPr()
     meta = ind.json()

environment.yml
pip install -e .[dev]
parse_log_pytest
environment.yml
pytest pytest-cov coveralls
apt-get update apt-get install -y libspatialindex-dev
3.6
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs @ file:///home/conda/feedstock_root/build_artifacts/attrs_1671632566681/work
bleach==4.1.0
bokeh @ file:///home/conda/feedstock_root/build_artifacts/bokeh_1625756939897/work
boltons @ file:///home/conda/feedstock_root/build_artifacts/boltons_1622121478442/work
Bottleneck @ file:///home/conda/feedstock_root/build_artifacts/bottleneck_1629826550175/work
bump2version==1.0.1
certifi==2021.5.30
cffi==1.15.1
cfgv==3.3.1
cftime @ file:///home/conda/feedstock_root/build_artifacts/cftime_1632539733990/work
charset-normalizer==2.0.12
click==7.1.2
click-plugins==1.1.1
cligj @ file:///home/conda/feedstock_root/build_artifacts/cligj_1633637764473/work
cloudpickle @ file:///home/conda/feedstock_root/build_artifacts/cloudpickle_1674202310934/work
colorama==0.4.5
contextvars==2.4
coverage==6.2
coveralls==3.3.1
cryptography==40.0.2
cycler @ file:///home/conda/feedstock_root/build_artifacts/cycler_1635519461629/work
cytoolz==0.11.0
dask @ file:///home/conda/feedstock_root/build_artifacts/dask-core_1614995065708/work
distlib==0.3.9
distributed @ file:///home/conda/feedstock_root/build_artifacts/distributed_1615002625500/work
docopt==0.6.2
docutils==0.18.1
filelock==3.4.1
Fiona==1.8.20
flake8==5.0.4
fsspec @ file:///home/conda/feedstock_root/build_artifacts/fsspec_1674184942191/work
GDAL==3.3.0
geojson==2.5.0
geopandas @ file:///home/conda/feedstock_root/build_artifacts/geopandas_1623249625470/work
HeapDict==1.0.1
identify==2.4.4
idna==3.10
immutables @ file:///home/conda/feedstock_root/build_artifacts/immutables_1628601257972/work
importlib-metadata==4.2.0
importlib-resources==5.2.3
iniconfig==1.1.1
jeepney==0.7.1
Jinja2 @ file:///home/conda/feedstock_root/build_artifacts/jinja2_1636510082894/work
joblib @ file:///home/conda/feedstock_root/build_artifacts/joblib_1663332044897/work
keyring==23.4.1
kiwisolver @ file:///home/conda/feedstock_root/build_artifacts/kiwisolver_1610099771815/work
llvmlite==0.36.0
locket @ file:///home/conda/feedstock_root/build_artifacts/locket_1650660393415/work
mapclassify @ file:///home/conda/feedstock_root/build_artifacts/mapclassify_1673861555770/work
MarkupSafe @ file:///home/conda/feedstock_root/build_artifacts/markupsafe_1621455668064/work
matplotlib @ file:///home/conda/feedstock_root/build_artifacts/matplotlib-suite_1611858699142/work
mccabe==0.7.0
msgpack @ file:///home/conda/feedstock_root/build_artifacts/msgpack-python_1610121702224/work
munch==2.5.0
netCDF4 @ file:///home/conda/feedstock_root/build_artifacts/netcdf4_1624308175279/work
networkx @ file:///home/conda/feedstock_root/build_artifacts/networkx_1646092782768/work
nodeenv==1.6.0
numba @ file:///home/conda/feedstock_root/build_artifacts/numba_1623568542230/work
numpy @ file:///home/conda/feedstock_root/build_artifacts/numpy_1626681920064/work
olefile @ file:///home/conda/feedstock_root/build_artifacts/olefile_1602866521163/work
packaging @ file:///home/conda/feedstock_root/build_artifacts/packaging_1637239678211/work
pandas==1.1.5
partd @ file:///home/conda/feedstock_root/build_artifacts/partd_1617910651905/work
Pillow @ file:///home/conda/feedstock_root/build_artifacts/pillow_1621287993989/work
Pint @ file:///home/conda/feedstock_root/build_artifacts/pint_1630435029884/work
pkginfo==1.10.0
platformdirs==2.4.0
pluggy==1.0.0
pre-commit==2.17.0
psutil @ file:///home/conda/feedstock_root/build_artifacts/psutil_1610127101219/work
py==1.11.0
pycodestyle==2.9.1
pycparser==2.21
pyflakes==2.5.0
Pygments==2.14.0
pyparsing @ file:///home/conda/feedstock_root/build_artifacts/pyparsing_1724616129934/work
pyproj @ file:///home/conda/feedstock_root/build_artifacts/pyproj_1614934904503/work
pytest==7.0.1
pytest-cov==4.0.0
pytest-runner==5.3.2
python-dateutil @ file:///home/conda/feedstock_root/build_artifacts/python-dateutil_1626286286081/work
pytz @ file:///home/conda/feedstock_root/build_artifacts/pytz_1693930252784/work
PyYAML==5.4.1
readme-renderer==34.0
requests==2.27.1
requests-toolbelt==1.0.0
rfc3986==1.5.0
Rtree @ file:///home/conda/feedstock_root/build_artifacts/rtree_1610147153210/work
scikit-learn @ file:///home/conda/feedstock_root/build_artifacts/scikit-learn_1630910533947/work
scipy @ file:///home/conda/feedstock_root/build_artifacts/scipy_1629411471490/work
SecretStorage==3.3.3
Shapely @ file:///home/conda/feedstock_root/build_artifacts/shapely_1628205367507/work
six @ file:///home/conda/feedstock_root/build_artifacts/six_1620240208055/work
sortedcontainers @ file:///home/conda/feedstock_root/build_artifacts/sortedcontainers_1621217038088/work
tblib @ file:///home/conda/feedstock_root/build_artifacts/tblib_1616261298899/work
threadpoolctl @ file:///home/conda/feedstock_root/build_artifacts/threadpoolctl_1643647933166/work
toml==0.10.2
tomli==1.2.3
toolz @ file:///home/conda/feedstock_root/build_artifacts/toolz_1657485559105/work
tornado @ file:///home/conda/feedstock_root/build_artifacts/tornado_1610094701020/work
tox==3.28.0
tqdm==4.64.1
twine==3.8.0
typing_extensions @ file:///home/conda/feedstock_root/build_artifacts/typing_extensions_1644850595256/work
urllib3==1.26.20
virtualenv==20.16.2
watchdog==2.3.1
webencodings==0.5.1
xarray @ file:///home/conda/feedstock_root/build_artifacts/xarray_1621474818012/work
-e git+https://github.com/Ouranosinc/xclim.git@3c2b233b45af8c1b6932d19ae43dc398bbcbed43#egg=xclim
zict==2.0.0
zipp @ file:///home/conda/feedstock_root/build_artifacts/zipp_1633302054558/work

name: xclim
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - attrs=22.2.0=pyh71513ae_0
  - bokeh=2.3.3=py36h5fab9bb_0
  - boltons=21.0.0=pyhd8ed1ab_0
  - boost-cpp=1.74.0=hc6e9bd1_3
  - bottleneck=1.3.2=py36he33b4a0_4
  - bzip2=1.0.8=h7f98852_4
  - c-ares=1.18.1=h7f98852_0
  - ca-certificates=2025.2.25=h06a4308_0
  - cairo=1.16.0=h6cf1ce9_1008
  - certifi=2021.5.30=py36h06a4308_0
  - cfitsio=3.470=hb418390_7
  - cftime=1.5.1=py36he33b4a0_0
  - click=7.1.2=pyh9f0ad1d_0
  - click-plugins=1.1.1=py_0
  - cligj=0.7.2=pyhd8ed1ab_1
  - cloudpickle=2.2.1=pyhd8ed1ab_0
  - contextvars=2.4=py_0
  - curl=7.79.1=h2574ce0_1
  - cycler=0.11.0=pyhd8ed1ab_0
  - cytoolz=0.11.0=py36h8f6f2f9_3
  - dask=2021.3.0=pyhd8ed1ab_0
  - dask-core=2021.3.0=pyhd8ed1ab_0
  - distributed=2021.3.0=py36h5fab9bb_0
  - expat=2.4.8=h27087fc_0
  - fiona=1.8.20=py36he9df7c8_1
  - fontconfig=2.14.0=h8e229c2_0
  - freetype=2.10.4=h0708190_1
  - freexl=1.0.6=h7f98852_0
  - fsspec=2023.1.0=pyhd8ed1ab_0
  - gdal=3.3.0=py36h5febb71_1
  - geojson=2.5.0=py_0
  - geopandas=0.9.0=pyhd8ed1ab_1
  - geopandas-base=0.9.0=pyhd8ed1ab_1
  - geos=3.9.1=h9c3ff4c_2
  - geotiff=1.6.0=hcf90da6_5
  - gettext=0.19.8.1=h0b5b191_1005
  - giflib=5.2.1=h36c2ea0_2
  - hdf4=4.2.15=h10796ff_3
  - hdf5=1.10.6=nompi_h6a2412b_1114
  - heapdict=1.0.1=py_0
  - icu=68.2=h9c3ff4c_0
  - immutables=0.16=py36h8f6f2f9_0
  - importlib_metadata=4.8.1=hd8ed1ab_1
  - jinja2=3.0.3=pyhd8ed1ab_0
  - joblib=1.2.0=pyhd8ed1ab_0
  - jpeg=9e=h166bdaf_1
  - json-c=0.15=h98cffda_0
  - kealib=1.4.14=hcc255d8_2
  - keyutils=1.6.1=h166bdaf_0
  - kiwisolver=1.3.1=py36h605e78d_1
  - krb5=1.19.3=h3790be6_0
  - lcms2=2.12=hddcbb42_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libblas=3.9.0=16_linux64_openblas
  - libcblas=3.9.0=16_linux64_openblas
  - libcurl=7.79.1=h2574ce0_1
  - libdap4=3.20.6=hd7c4107_2
  - libedit=3.1.20191231=he28a2e2_2
  - libev=4.33=h516909a_1
  - libffi=3.3=he6710b0_2
  - libgcc-ng=11.2.0=h1234567_1
  - libgdal=3.3.0=h679344c_1
  - libgfortran-ng=13.2.0=h69a702a_0
  - libgfortran5=13.2.0=ha4646dd_0
  - libglib=2.68.4=h3e27bee_0
  - libgomp=11.2.0=h1234567_1
  - libiconv=1.17=h166bdaf_0
  - libkml=1.3.0=h238a007_1014
  - liblapack=3.9.0=16_linux64_openblas
  - libllvm10=10.0.1=he513fc3_3
  - libnetcdf=4.8.0=nompi_hcd642e3_103
  - libnghttp2=1.43.0=h812cca2_1
  - libnsl=2.0.0=h7f98852_0
  - libopenblas=0.3.21=h043d6bf_0
  - libpng=1.6.37=h21135ba_2
  - libpq=13.3=hd57d9b9_0
  - librttopo=1.1.0=h1185371_6
  - libspatialindex=1.9.3=h9c3ff4c_4
  - libspatialite=5.0.1=h20cb978_4
  - libssh2=1.10.0=ha56f1ee_2
  - libstdcxx-ng=11.2.0=h1234567_1
  - libtiff=4.2.0=hbd63e13_2
  - libuuid=2.32.1=h7f98852_1000
  - libwebp-base=1.2.2=h7f98852_1
  - libxcb=1.13=h7f98852_1004
  - libxml2=2.9.12=h72842e0_0
  - libzip=1.8.0=h4de3113_1
  - llvmlite=0.36.0=py36h05121d2_0
  - locket=1.0.0=pyhd8ed1ab_0
  - lz4-c=1.9.3=h9c3ff4c_1
  - mapclassify=2.5.0=pyhd8ed1ab_1
  - markupsafe=2.0.1=py36h8f6f2f9_0
  - matplotlib-base=3.3.4=py36hd391965_0
  - msgpack-python=1.0.2=py36h605e78d_1
  - munch=2.5.0=py_0
  - ncurses=6.4=h6a678d5_0
  - netcdf4=1.5.7=nompi_py36h3d597d4_100
  - networkx=2.7=pyhd8ed1ab_0
  - numba=0.53.1=py36h1328434_1
  - numpy=1.19.5=py36hfc0c790_2
  - olefile=0.46=pyh9f0ad1d_1
  - openjpeg=2.4.0=hb52868f_1
  - openssl=1.1.1w=h7f8727e_0
  - packaging=21.3=pyhd8ed1ab_0
  - pandas=1.1.5=py36h284efc9_0
  - partd=1.2.0=pyhd8ed1ab_0
  - pcre=8.45=h9c3ff4c_0
  - pillow=8.2.0=py36ha6010c0_1
  - pint=0.17=pyhd8ed1ab_1
  - pip=21.2.2=py36h06a4308_0
  - pixman=0.40.0=h36c2ea0_0
  - poppler=21.03.0=h93df280_0
  - poppler-data=0.4.12=hd8ed1ab_0
  - postgresql=13.3=h2510834_0
  - proj=8.0.0=h277dcde_0
  - psutil=5.8.0=py36h8f6f2f9_1
  - pthread-stubs=0.4=h36c2ea0_1001
  - pyparsing=3.1.4=pyhd8ed1ab_0
  - pyproj=3.0.1=py36h6e9aebd_1
  - python=3.6.13=h12debd9_1
  - python-dateutil=2.8.2=pyhd8ed1ab_0
  - python_abi=3.6=2_cp36m
  - pytz=2023.3.post1=pyhd8ed1ab_0
  - pyyaml=5.4.1=py36h8f6f2f9_1
  - readline=8.2=h5eee18b_0
  - rtree=0.9.7=py36hb415506_1
  - scikit-learn=0.24.2=py36hc89565f_1
  - scipy=1.5.3=py36h81d768a_1
  - setuptools=58.0.4=py36h06a4308_0
  - shapely=1.7.1=py36hff28ebb_5
  - six=1.16.0=pyh6c4a22f_0
  - sortedcontainers=2.4.0=pyhd8ed1ab_0
  - sqlite=3.45.3=h5eee18b_0
  - tblib=1.7.0=pyhd8ed1ab_0
  - threadpoolctl=3.1.0=pyh8a188c0_0
  - tiledb=2.2.9=h91fcb0e_0
  - tk=8.6.14=h39e8969_0
  - toolz=0.12.0=pyhd8ed1ab_0
  - tornado=6.1=py36h8f6f2f9_1
  - typing-extensions=4.1.1=hd8ed1ab_0
  - typing_extensions=4.1.1=pyha770c72_0
  - tzcode=2022a=h166bdaf_0
  - tzdata=2025b=h78e105d_0
  - wheel=0.37.1=pyhd3eb1b0_0
  - xarray=0.18.2=pyhd8ed1ab_0
  - xerces-c=3.2.3=h9d8b166_3
  - xorg-kbproto=1.0.7=h7f98852_1002
  - xorg-libice=1.0.10=h7f98852_0
  - xorg-libsm=1.2.3=hd9c2040_1000
  - xorg-libx11=1.7.2=h7f98852_0
  - xorg-libxau=1.0.9=h7f98852_0
  - xorg-libxdmcp=1.1.3=h7f98852_0
  - xorg-libxext=1.3.4=h7f98852_1
  - xorg-libxrender=0.9.10=h7f98852_1003
  - xorg-renderproto=0.11.1=h7f98852_1002
  - xorg-xextproto=7.3.0=h7f98852_1002
  - xorg-xproto=7.0.31=h7f98852_1007
  - xz=5.6.4=h5eee18b_1
  - yaml=0.2.5=h7f98852_2
  - zict=2.0.0=py_0
  - zipp=3.6.0=pyhd8ed1ab_0
  - zlib=1.2.13=h5eee18b_1
  - zstd=1.4.9=ha95c52a_0
  - pip:
      - bleach==4.1.0
      - bump2version==1.0.1
      - cffi==1.15.1
      - cfgv==3.3.1
      - charset-normalizer==2.0.12
      - colorama==0.4.5
      - coverage==6.2
      - coveralls==3.3.1
      - cryptography==40.0.2
      - distlib==0.3.9
      - docopt==0.6.2
      - docutils==0.18.1
      - filelock==3.4.1
      - flake8==5.0.4
      - identify==2.4.4
      - idna==3.10
      - importlib-metadata==4.2.0
      - importlib-resources==5.2.3
      - iniconfig==1.1.1
      - jeepney==0.7.1
      - keyring==23.4.1
      - mccabe==0.7.0
      - nodeenv==1.6.0
      - pkginfo==1.10.0
      - platformdirs==2.4.0
      - pluggy==1.0.0
      - pre-commit==2.17.0
      - py==1.11.0
      - pycodestyle==2.9.1
      - pycparser==2.21
      - pyflakes==2.5.0
      - pygments==2.14.0
      - pytest==7.0.1
      - pytest-cov==4.0.0
      - pytest-runner==5.3.2
      - readme-renderer==34.0
      - requests==2.27.1
      - requests-toolbelt==1.0.0
      - rfc3986==1.5.0
      - secretstorage==3.3.3
      - toml==0.10.2
      - tomli==1.2.3
      - tox==3.28.0
      - tqdm==4.64.1
      - twine==3.8.0
      - urllib3==1.26.20
      - virtualenv==20.16.2
      - watchdog==2.3.1
      - webencodings==0.5.1
prefix: /opt/conda/envs/xclim

tests/test_checks.py::TestMissingAnyFills::test_no_freq tests/test_indicators.py::test_missing
tests/test_atmos.py::test_wind_speed_from_vectors tests/test_atmos.py::test_relative_humidity_dewpoint tests/test_atmos.py::test_saturation_vapor_pressure tests/test_atmos.py::test_relative_humidity tests/test_atmos.py::test_specific_humidity tests/test_checks.py::TestDateHandling::test_assert_daily tests/test_checks.py::TestDateHandling::test_bad_frequency tests/test_checks.py::TestDateHandling::test_missing_one_day_between_two_years tests/test_checks.py::TestDateHandling::test_duplicate_dates tests/test_checks.py::TestMissingAnyFills::test_missing_days tests/test_checks.py::TestMissingAnyFills::test_missing_months tests/test_checks.py::TestMissingAnyFills::test_missing_years tests/test_checks.py::TestMissingAnyFills::test_missing_season tests/test_checks.py::TestMissingAnyFills::test_to_period_start tests/test_checks.py::TestMissingAnyFills::test_to_period_end tests/test_checks.py::TestMissingAnyFills::test_month tests/test_checks.py::TestMissingAnyFills::test_season tests/test_checks.py::TestMissingAnyFills::test_hydro tests/test_checks.py::TestMissingWMO::test_missing_days tests/test_checks.py::TestMissingWMO::test_missing_days_in_quarter tests/test_checks.py::TestMissingPct::test_missing_days tests/test_indicators.py::test_attrs tests/test_indicators.py::test_temp_unit_conversion tests/test_indicators.py::test_json tests/test_indicators.py::test_signature tests/test_indicators.py::test_doc tests/test_indicators.py::test_delayed tests/test_indicators.py::test_identifier tests/test_indicators.py::test_formatting tests/test_indicators.py::test_parse_doc tests/test_indicators.py::test_default_formatter tests/test_indicators.py::test_AttrFormatter tests/test_indicators.py::test_merge_attributes[<Missing>-<>] tests/test_indicators.py::test_merge_attributes[<Missing>-\n] tests/test_indicators.py::test_merge_attributes[None-<>] tests/test_indicators.py::test_merge_attributes[None-\n] tests/test_indicators.py::test_update_history
xclim/core/checks.py xclim/core/indicator.py xclim/indicators/atmos/_conversion.py
xclim/core/checks.py xclim/core/indicator.py xclim/indicators/atmos/_conversion.py